课程
/前端开发
/JavaScript
/JavaScript深入浅出
实例化把原型链里边的x修改了,emmm
2019-10-18
源自:JavaScript深入浅出 4-2
正在回答
这是输出你自己对象上的属性,当访问一个属性的时候,首先会在实例中搜索该属性,如果没有找到该属性,则会继续搜索实例的原型。
原型链啊,首先会在自己的属性中找,找不到才会去找原型的属性,而你输出的是自己的属性
咱们得区分你输出的对象是谁,会不会追溯要原型上。
console.log(obj.x);//意味着输出obj对象的x属性,因为你在输出前给new的obj对象赋予了x = 'a', 所以在这里他不会追溯到原型上的x属性的值 你还可以尝试把obj.x='a'删掉看看,此时输出为原型的x属性值;
换言之,如果在new的对象中新建同名属性并赋值,该对象不会被父类的同名属性和值影响(这里不能用继承的概念);反之,则会通过原型链追溯到父对象,得到父对象该属性的值
截图里没问题吧,没修改原型链的x,输出的是对象上的x
举报
由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握
1 回答JS原型链例题中this的问题
2 回答关于实例,原型和对象
2 回答原型链继承
3 回答原型链问题
2 回答对象原型链