请问
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)
}
有什么区别
主要是 绑定在原型上的方法 和 写在构造函数内的方法什么却别?
写在构造函数里的属性,每个对象实例都会复制一份(所以比较占内存),修改该属性不会影响其他实例;
写在原型链上是共享的,如果修改,会影响其他实例,所以一般是在实例上重写一个同名方法覆盖原型上的,而不是去修改原型方法。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
通过原型法分配的函数是所有对象共享的.
通过原型法分配的属性是独立.(如果你不修改属性,他们就是共享的)
建议:如果我们希望所有的对象使用同一一个函数,最好使用原型法添加函数,这样比较节省内存.