gpt4 book ai didi

javascript - 如何扩展 javascript 对象方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:54 25 4
gpt4 key购买 nike

我有这个对象

var X = {
a:function(args){
},
b:function(args){
},
c: ...... etc
}

X.a() // will do somthing

我想修改方法让它再做一个语句说“counter++”

所以

var oldX = X.a();
X.a =function(args){
oldX(args);
counter++;
}

如果我想对对象 X 的所有方法进行此更改。 那么我如何通过像这样遍历对象来做到这一点?

for(var i in X){

}

当我通过存储在方法的 oolArray 中尝试它时,但在执行时它将用 lastone 替换所有方法..

最佳答案

我完全确定您想要的行为应该使用原型(prototype)继承来实现。但我对您的体系结构和要求一无所知,所以这里是按照您想要的方式编写的解决方案:

var x = {
a: function(){
console.log('x.a')
},
b: function(){
console.log('x.b')
}
},
oldx = {},
key;

for (key in x) {
oldx[key] = x[key];
(function(key){
x[key] = function(){
oldx[key].apply(this, arguments);
console.log('x.new_'+key);
}
})(key);

}

x.a();
x.b();

关于javascript - 如何扩展 javascript 对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872822/

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