js一个对象的prototype重新显式声明后不重新定义constructor,会产生什么后果?

2016/12 01 14:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于ys3399盈丰国际官网网址的点点滴滴

function Personname{
    this.name = name;
}
Person.prototype = {};// 清空prototype
Person.prototype.sayHello = function{alertthis.name+"say Hello!";};

在定义 Person 类时清空了 Person.prototypenew Person 后好像以为不到差别,prototype上的办法还是能调用。

是不是constractor不重定义影响不大,假如有影响,会在哪些方面发生影响?

传送门

固然有影响了,关于 constructor 的引见 MDN。

由于你把 Person.prototype 清空了,比如你定义一个

var ming = new Person"xiaoming";
console.logming.constructor == Person; // false
console.logming.constructor == Object; // true

你也看到了,爷爷变成了爸爸,乱伦了。。

constructor 偶然分很有效的。

function Personname{
    this.name = name;
}
Person.prototype = {};
Person.prototype.sayHello = function{console.logthis.name+"say Hello!";};
new Person1.sayHello//1say Hello!
Person.prototype = {};// 清空prototype
Person.prototype.sayHello2 = function{console.logthis.name+"say Hello2!";};
new Person1.sayHello //报错
new Person1.sayHello2 //1say Hello2!

prototype修正后原来的sayHello办法没了

(看完/读完)这篇文章有何感想! 来看看ys3399盈丰国际官网网址是怎么评论的吧!

--转载请注明: ys3399盈丰国际官网_www.ys3399.com_ys3399盈丰国际官网网址 » js一个对象的prototype重新显式声明后不重新定义constructor,会产生什么后果?

发表评论

(必填)