JavaScript 中 call 的简单理解

如果你还不熟悉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可以改变函数的调用形式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. this之谜 在JavaScript中,this是当前执行函数的上下文。因为JavaScript有4种不同的...
    百里少龙阅读 4,636评论 0 3
  • 注:本文案例环境为非严格模式,严格模式下禁止关键字this指向全局对象 一、方法是怎么执行的? 首先说一下js中方...
    就那ck阅读 4,987评论 5 17
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,661评论 0 4
  • 过生日的意义是什么。应该是小孩子的庆典。老人们的岁岁纪念。还是青年人的过度狂欢。 一直以来都把生日看成一件大事。会...
    路小宛阅读 2,338评论 0 0
  • hthttp://tp://mp.weixin.qq.com/s/a1fOykNLka9kSJnAS3_G4Q 农...
    a8034dc5f738阅读 3,641评论 0 0

友情链接更多精彩内容