gpt4 book ai didi

javascript - 如何共享作为对象属性的函数并避免重复代码

转载 作者:行者123 更新时间:2023-11-29 19:40:37 25 4
gpt4 key购买 nike

我有一个看起来像这样的对象:

var foo = {
parent: {
childOne: {
prop: 1,
doSomething: function(){
return this.prop;
}
},
childTwo: {
prop: 2,
doSomething: function(){
return this.prop;
}
}
},
other: {
action: function(){
return foo.parent.childOne.doSomething() +
foo.parent.childTwo.doSomething();
}
}
}

window.alert(foo.other.action());

Live example.

这里的 doSomething() 函数肯定是重复代码,我想避免它,这类似于继承解决的问题。

我在想是否有任何方法可以按照以下方式做某事:

parent: {
doSomething: function(){
return this.prop;
}
}

但不确定如何实际实现,这可能吗?

最佳答案

你仍然需要上下文绑定(bind):

function something(context){
return function(){
return context.prop;
}
}

现在:

doSomething: something(this);

现在,就像在 foo.other.action 方法中调用 doSomething() 一样。

关于javascript - 如何共享作为对象属性的函数并避免重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23304235/

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