gpt4 book ai didi

javascript - this.someFunction.call(this, param); 的目的是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:47:44 26 4
gpt4 key购买 nike

我在很多地方都遇到过一些具有这种模式的代码:

this.someFunction.call(this, param);

但在我看来这只是一种更冗长的打字方式

this.someFunction(param)

该模式有时会出现在作为回调提供的函数中。如果相关的话,它恰好使用了 Backbone。像这样:

Backbone.View.extend({
// other stuff ...

someFunction: function(param) {
// ...
},
anotherFunction: function() {
this.collection.on("some_event", function() {
this.someFunction.call(this, param);
});
}
});

模式是否真的有一个不等同于 this.someFunction(param) 的效果,或者有人只是担心闭包没有捕获正确的 this

感谢您的任何见解!

最佳答案

Does the pattern actually have an effect that isn't the equivalent of this.someFunction(param)?

不,它们确实是一样的。假设 this.someFunction 是一个从 Function.prototype 继承 .call 的函数(但这是吹毛求疵)。

看起来有人过于谨慎了,或者代码是没有使用 this 两次的东西的遗留物。或者也许作者知道 this-context-in-callbacks issue但未能正确处理。

关于javascript - this.someFunction.call(this, param); 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com