JavaScript 伪古典继承
示例
它是使用原型继承对经典继承的仿真,它显示了原型的强大功能。这样做是为了使该语言对来自其他语言的程序员更具吸引力。
重要说明:自ES6起,使用伪calscalsical继承没有意义,因为该语言模拟常规类。如果您不使用ES6,则应该使用。如果您仍想使用经典继承模式,并且您处于ECMAScript5或更低版本的环境中,那么最好选择伪古典。
“类”只是一个由new操作数调用的函数,它用作构造函数。
function Foo(id, name) { this.id= id; this.name= name; } var foo = new Foo(1, 'foo'); console.log(foo.id);
控制台输出
1
foo是Foo.TheJavaScript编码约定的一个实例,它表示如果函数以大写字母开头,则可以将其称为构造函数(带有new操作数)。
要向“类”添加属性或方法,您必须将其添加到其原型中,该原型可以prototype在构造函数的属性中找到。
Foo.prototype.bar = 'bar'; console.log(foo.bar);
控制台输出
酒吧
实际上,Foo作为“构造函数”所做的只是使用Foo.prototype其原型创建对象。
您可以在每个对象上找到对其构造函数的引用
console.log(foo.constructor);
功能Foo(id,name){...
console.log({ }.constructor);
函数Object(){[本地代码]}
并使用instanceof运算符检查对象是否为给定类的实例
console.log(foo instanceof Foo);
真正
console.log(foo instaceof Object);
真正