JavaScript中的多态性



此代码的第二行是什么意思?

var Square = function (){
Square.prototype = Object.create(Shape.prototype); // Meaning?
Square.prototype.draw = function (){
     return "I am a square";
}

它正在创建一个使用对象Shape.prototype的对象,称为其原型。因此,通过new Square创建的实例从该对象继承,而该对象又从Shape.prototype继承了,因此这些实例具有两者的功能。

这是不完整的,应遵循:

Square.prototype.constructor = Square;

当然,由于ES2015出来了,并且由转运器妥善支持(现在由现代浏览器和其他现代JavaScript环境(,因此几乎没有理由将这种冗长和错误的方式吸引。

<</p> <</p> <</p>

最新更新