美文网首页
JavaScript 中 call 的简单理解

JavaScript 中 call 的简单理解

作者: tanyp | 来源:发表于2017-03-28 09:52 被阅读0次

如果你还不熟悉JavaScript 中this,请先学习this。

call() 简单的说就是改变this的指向
改变函数的调用方式

下面看几个例子:

例子一:

function b() { 
  this.style.background = "red" 
};

现在this指定是window所以调用它会报错,而

obj.onclick = function() {
  b.call(this);
};

因为call改变的this的指向,现在调用this的人变成了obj所以this的指向现在变成了obj所以当点击obj的时候obj的颜色就会改变。

例子二:

function fn1() {
  console.log(1);
}
function fn2() {
  console.log(2);
}

fn1.call(fn2); // 1
fn1.call.call(fn2); // 2

例子三:

var arr = [1,2,3,4,5,6,7,8]
var a = arr.shift();
var b = Array.prototype.shift.call(arr)

ab是等价的,使用call可以改变函数的调用形式

相关文章

网友评论

      本文标题:JavaScript 中 call 的简单理解

      本文链接:https://www.haomeiwen.com/subject/ygadottx.html