关于this的指向问题。
来源:16-3 作用域和闭包-this
精慕门8222655
2018-11-12
<script>
function Parent() {
this.a = 1;
this.b = [1, 2, this.a];
this.c = { demo: 5 };
this.show = function () {
console.log(this.a , this.b , this.c.demo );
}
}
function Child() {
this.a = 2;
this.change = function () {
this.b.push(this.a);
this.a = this.b.length;
this.c.demo = this.a++;
}
}
Child.prototype = new Parent();
var parent = new Parent();
var child1 = new Child();
var child2 = new Child();
child1.a = 11;
child2.a = 12;
child1.show();//11 [1, 2, 1] 5
child2.show();//12 [1, 2, 1] 5
child1.change();
child1.show();//5 [1, 2, 1, 11] 4
child2.change();
child2.show();//6 [1, 2, 1, 11, 12] 5
//老师在child1.change()操作中,影响了child2的值,是不是可以理解成child1,和child2指向同一个地址内的数据?
</script>
老师在child1.change()操作中,影响了child2的值,是不是可以理解成
1.通过同一个构造函数创建的对象,child1,和child2对象指向同一个地址内的数据?
2.但是new不是会创建一个新的实例(分配一个新的地址?)如果不是同一个地址的话应该不会互相修改数据的吧?
写回答
1回答
-
双越
2018-11-12
是的。new 会新生成一个对象,而不是原来的对象。
012018-11-12
相似问题