gpt4 book ai didi

javascript - 如何在 javascript 中传递方法?

转载 作者:行者123 更新时间:2023-11-29 10:25:13 24 4
gpt4 key购买 nike

我经常需要将方法从对象传递到其他对象。但是我通常希望该方法附加到原始对象(附加我的意思是'this'应该指原始对象)。我知道有几种方法可以做到这一点:

a) 在对象构造函数中:ObjectA = function() { var that = this; var method = function(a,b,c) { that.abc = a+b+c }}

b) 在已传递给对象 B 的对象 A 中:objectB.assign(function(a,b,c) { that.method(a,b,c) })

c) 在两个对象之外:objectB.assign(function(a,b,c) { objectA.method(a,b,c) })

我想知道是否有更简单的方法来传递附加到其原始对象的方法。

最佳答案

您可以为所有函数定义一个“createDelegate”方法:

Function.prototype.createDelegate = function(scope) {
var method = this;
return function() {
return method.apply(scope, arguments);
}
}

然后像这样使用:

var myDelegate = myFunction.createDelegate(myScope);

调用“myDelegate”将执行“myFunction”,“this”指向“myScope”,参数与传递给 myDelegate 的参数相同

关于javascript - 如何在 javascript 中传递方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2983926/

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