请问
function A(){
this.v='a'
this.getVar = function(){
console.log(this.v)
}
}
和
function A(){
this.v='a'
}
A.prototype.getVar = function(){
console.log(this.v)
}
有什么区别
主要是 绑定在原型上的方法 和 写在构造函数内的方法什么却别?
请问
function A(){
this.v='a'
this.getVar = function(){
console.log(this.v)
}
}
和
function A(){
this.v='a'
}
A.prototype.getVar = function(){
console.log(this.v)
}
有什么区别
主要是 绑定在原型上的方法 和 写在构造函数内的方法什么却别?
写在构造函数里的属性,每个对象实例都会复制一份(所以比较占内存),修改该属性不会影响其他实例;
写在原型链上是共享的,如果修改,会影响其他实例,所以一般是在实例上重写一个同名方法覆盖原型上的,而不是去修改原型方法。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
通过原型法分配的函数是所有对象共享的.
通过原型法分配的属性是独立.(如果你不修改属性,他们就是共享的)
建议:如果我们希望所有的对象使用同一一个函数,最好使用原型法添加函数,这样比较节省内存.