JS里面 方法.call()是什么?

发布于 2022-09-01 15:48:51 字数 28 浏览 11 评论 0

JS里面 方法.call()是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

有木有妳兜一样 2022-09-08 15:48:51

改变执行上下文,相应的还有apply,bind

一个obj对象,有log方法和foo属性

var obj = {
log: function() {
console.log(this.foo);
},
foo: 'foo'
};

//可以直接打印obj的foo
console.log(obj.foo);
//或者调用obj的log方法打印
obj.log();

现在有了一个temp对象,也有foo属性
var temp = {
foo:'bar'
};

通过bind,apply,call,使用obj的log方法打印temp对象里的属性,切换上下文。
obj.log.bind(temp)();
obj.log.apply(temp);
obj.log.call(temp);

简美 2022-09-08 15:48:51

call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

同apply类似,唯一区别是:

apply()把参数打包成Array再传入;
call()把参数按顺序传入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文