1 var o =function(){}; 2 o.prototype.p="123"; 3 o.p ="321"; 4 console.log(o.p);//输出321 5 6 var test =function(){}; 7 test.prototype.name ="zhangsan"; 8 test.name="lisi"; 9 console.log(test.name);//输出空字符串
重新定义的属性应该是继承自原型属性,那么p和name属性应该是覆盖了原型属性,所以读取时不应该是读取的常规属性而非继承属性么?为什么第二次输出的结果这么匪夷所思?求指导!
IE浏览器可以返回"lisi",但火狐和Chrome返回空字符串.Why?
name为js保留关键字,此处的test为一个函数体,函数体的name为其本身。
例如:
var test =function(){}; 可以写成 function test(){};
那么test.name即时其本身"test"。
function test(){} console.log(test.name);
再说了你这种继承性不对啊,要实例化为对象。
var test =function(){}; test.prototype.name2 ="zhangsan"; var t1=new test(); t1.name="lili"; console.log(t1.name);
谢谢!!
那个继承一定要是实例继承对象么?对象的属性不能继承原型属性么?好绕,还是一知半解啊!
为什么