《JavaScript面向对象精要》第五章的总结上说不能用原型对象继承属性,于是测试了下,越测试越混乱,后来看了https://segmentfault.com/a/11...这篇文章,又看了http://www.ruanyifeng.com/blo...这个,评论里有个小例子,尝试根据需要改了下,在谷歌浏览器控制台直接输入的代码如下:
function A(var1){ this.var1 = var1; } A.prototype = { var1:1}var b=new A(); b.var1 = 2;var c = new A(); console.log(b.var1); //输出2console.log(c.var1); //输出undefined
function A(){ //do noting} A.prototype = { var1:1}var b=new A(); b.var1 = 2;var c = new A();console.log(b.var1); //输出2console.log(c.var1); //输出1
想问这两个结果为什么输出不同?还有var1不是原型对象上加的属性么?第二段程序能输出c.var1为1不是说明还是能通过原型对象继承属性么?
相关分类