function Demo() {
this.show1 = function() { alert(1) }
}
Demo.prototype.show2 = function() { alert(2) }
var d = new Demo
d.show1()
d.show2()
show1
和show2
都可以报警号码。
这两者有什么区别吗?
最佳答案
是的,如果您在构造函数内初始化该方法,例如(this.method = function () {};
),所有 1000 个对象实例都将拥有一个函数对象作为自己的属性。
嗯,这是最轻量级的方法,假设你在某个构造函数的原型(prototype)中有一个方法,并且你创建了 1000 个对象实例,所有这些对象都会在其原型(prototype)中包含你的方法链,并且所有这些都只会引用一个函数对象。
在第二种情况下,只有那些在 Demo.prototype.show2 = function(){alert(2)}
之后创建的对象才会获取代码。 :)
示例
您的代码
function Demo(){
this.show1 = function(){alert(1)}
}
Demo.prototype.show2 = function(){alert(2)}
var d = new Demo
d.show1()
d.show2()
其他案例
function Demo(){
this.show1 = function(){alert(1)}
}
var d = new Demo
Demo.prototype.show2 = function(){alert(2)}
d.show1()
d.show2()
关于javascript - 这些代码有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766791/