首先Student.prototype 不会指向 Person.prototype;而是Student.prototype._proto_指向Person.prototype。也不存在直接指向 Person;他们之间的继承是通过原型链,一一往上继承使用的。这不是严格像Java那样继承,感觉是这样继承的形式,本质上还是有区别的。
for(var key in obj){console.log('result:'+key)}可以枚举出:result:x
Student.prototype={y,2}; 这行代码的意思是将prototype重新赋值,也就是说这行代码之后,student.prototype只有y属性,没有x了。所以新创建的类中也没有x属性,输出,自然是undefined。
可以这样理解:bosn.__proto__和student.prototype都是引用,在创建bosn的时候,bosn.__proto__指向了student.prototype指向的对象,之后你修改student.prototype指向的对象,是不会影响bosn.__proto__指向的对象的
因为下面已经又对Student.prototype 再赋值了,而值是 { y : 2 };
即Student.prototype有且仅有一个值,y =》 值为2;
而nunnly 的还有其他的两个属性,一个是className,这个是实例化的时候添加上去的值
另外name 和 age 则是Student.__proto__ 向上查找的 Person.prototype 上的属性
那肯定的啊
看不懂你的逻辑-_-
还没有出来!
JavaScript里没有指针这个概念。。。。。。。。
。。。。。。。。。。。。慢慢来
看不懂你的逻辑
不对,完全不对,反复多看几遍。。。。