gpt4 book ai didi

javascript - 使用 "bind"创建时保留函数属性

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

我有一个看起来像这样的函数:

var tempFun = function() {
return 'something';
}
tempFun.priority = 100;

现在我将它推送到一个数组并在这个过程中将另一个对象绑定(bind)到它:

var funArray = [];
var newObj = {};

funArray.push( tempFun.bind(newObj) );

在此之后,我想像这样访问函数的属性:

funArray[0].priority

但它返回未定义。有什么方法可以在将新对象绑定(bind)到函数时保留函数的属性吗?

最佳答案

不,但是您可以自己编写一个函数来完成此操作;

Function.prototype.bindAndCopy = function () {
var ret = this.bind.apply(this, arguments);

for (var x in this) {
if (this.hasOwnProperty(x)) {
ret[x] = this[x];
}
}

return ret;
};

...然后您可以通过它使用;

var funArray = [];
var newObj = {};

funArray.push( tempFun.bindAndCopy(newObj) );

关于javascript - 使用 "bind"创建时保留函数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247595/

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