原型(prototype) 、 类(class) 、 实例(instance)、继承、Object对象(相当于类)、原型链
文章目录
一、原型(prototype) 、 类(class) 、 实例(instance)
1.原型(prototype)
当定义一个类的时候,就有他像对应的原型,如如没有显式继承一个指定类的时候,就默认原型是Object类的一个空实例(即没有任何属性)。
// 获取Panda默认原型(prototype)
let proto = Panda.prototype;
// 默认原型是Object类的一个空实例(即没有任何属性)
console.log( '默认原型: ', proto );
console.log( proto instanceof Object ); // true
可以通过 .type
给指定实例绑定一个名为 type 的属性(取值为字符串):
proto.type = '大熊猫';
也可给指定实例绑定一个名为 eat 的属性(取值为函数):
proto.eat = function(food) {
console.log(`${
this.name}吃${
food}`);
}
2. 类(class)
在JavaScript中可以通过 class 关键字来定义类,
// 用class关键字定义类
class Panda {
id = 1;
name = '大美';
constructor(){
console.log(this.id, this.name);
}
}
3.实例(instance)
通过 new 构造函数()
形式创建实例(instance)。
let p = new Panda();
console.log( p );
console.log( 'id: ', p.id );
console.log( 'name: ', p.name );
console.log( 'type: '