qq_慕慕947699
2019-10-18 18:56
实例化把原型链里边的x修改了,emmm
这是输出你自己对象上的属性,当访问一个属性的时候,首先会在实例中搜索该属性,如果没有找到该属性,则会继续搜索实例的原型。
原型链啊,首先会在自己的属性中找,找不到才会去找原型的属性,而你输出的是自己的属性
咱们得区分你输出的对象是谁,会不会追溯要原型上。
console.log(obj.x);//意味着输出obj对象的x属性,因为你在输出前给new的obj对象赋予了x = 'a', 所以在这里他不会追溯到原型上的x属性的值 你还可以尝试把obj.x='a'删掉看看,此时输出为原型的x属性值;
换言之,如果在new的对象中新建同名属性并赋值,该对象不会被父类的同名属性和值影响(这里不能用继承的概念);反之,则会通过原型链追溯到父对象,得到父对象该属性的值
截图里没问题吧,没修改原型链的x,输出的是对象上的x
JavaScript深入浅出
281111 学习 · 1020 问题
相似问题