我有一个关于JavaScript的问题。我知道如何使用prototype,以及为什么使用它,但我试图回答这个问题,如果我在这样的函数中使用prototype会发生什么,
var Command = function () {
var text = 'Hello World';
Command.prototype.run = function () {
console.log(text);
};
};
var command = new Command();
command.run();现在我也可以使用私有函数或变量了。我有用原型构建的例子,所有的变体都有,它表明我在哪里使用jsFiddle似乎没有什么区别。但我是不是上锁了?
发布于 2015-11-04 21:09:29
如果在函数内部的函数原型上设置run()函数,则每次运行函数时都会重新定义该函数。
这是没有意义的(因为你可以只定义另一个函数,而不是设置原型),效率低下(因为你一遍又一遍地做相同的工作),另一个看着你的代码的开发人员不会理解你为什么要这样做,而你可以在函数之外定义它。
这就是为什么你看不到其他人这样做的原因。在原型上的函数外部定义run()只需定义一次。这是惯用的JS,例如。MDN。
我没有意识到这样做有任何技术上的问题。
https://stackoverflow.com/questions/33520666
复制相似问题