我想知道动态扩展函数的原型(prototype)是否是一种不好的做法。我正在考虑使用静态方法来执行此操作,该方法接收属性名称和要添加到原型(prototype)的函数。
这是一种不好的做法吗?
function Test() {
this.condition = false;
}
Test.extend = function(id, task) {
this.prototype[id] = function() {
return task.apply(this, arguments);
};
};
最佳答案
我会说在这种情况下这是不好的做法,因为您无法控制要添加的 [id] 方法是否从类中被覆盖。
var test = new Test();
test.extend("example", function() {
console.log("First Method");
});
test.extend("example", function() {
console.log("Second Method");
});
根据您的代码,您无法知道第一个方法何时被覆盖,从而随机破坏您的代码。
关于JavaScript:动态扩展原型(prototype)是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157927/