Javascript原型什么是正确的?
嘿,伙计们,我有一个关于javascript原型的问题 以下哪项是使用prototype的正确且最佳的方法?为什么Javascript原型什么是正确的?,javascript,prototype,Javascript,Prototype,嘿,伙计们,我有一个关于javascript原型的问题 以下哪项是使用prototype的正确且最佳的方法?为什么 var myClass = function(){ this.anotherFunction(); } myClass.prototype.anotherFunction = function(){ console.log('my prototype function'); } var foo = new myClass(); // which automaticaly pe
var myClass = function(){
this.anotherFunction();
}
myClass.prototype.anotherFunction = function(){
console.log('my prototype function');
}
var foo = new myClass(); // which automaticaly performs the function
或
谢谢 第一个实现直接从构造函数调用方法。这些方法通常是某种初始化方法,用于构建此上下文所需的内部状态。在不适合JavaScript的OOP中,这意味着直接从构建初始状态的类构造函数调用方法 第二个实现将原型函数和另一个函数公开为公共接口的一部分
简言之:两种变体都是正确的,但实现了不同的概念这不是一个或另一个。选择最适合您的情况的选项,一个将在您创建实例时立即执行,而另一个不会。由于var语句有错误,这两个选项都不起作用。@thefourhteye谢谢编辑!这两个例子与您的问题无关。@user3539582现在,重要的问题。你到底想做什么?所以第一个例子没有生成原型函数的副本?为什么它要复制一些东西?它只调用另一个函数。非常感谢,伙计!抱歉,我刚刚了解了原型,请原谅我问了一些奇怪的问题。我问的原因是,当你说“新对象”时,你复制了我在将所有函数包装到函数中之前所做的一切,然后再制作一个新的对象,从而复制所有内容,因此使用原型可以避免这种情况课题
var myClass = function(){
}
myClass.prototype.anotherFunction = function(){
console.log('my prototype function');
}
var foo = new myClass();
foo.anotherFunction(); // performs the function only when called