原型(prototype)
原型是實際對象被實例化的模型,有點像c++裏類的意思。
調用構造函數的prototype可以修改原型,往所有被實例化的對象添加新的屬性等操作。
<script>
function item() {
this.a = 1;
}
let b = new item()
console.log(b.a);
item.prototype.is = true;
console.log(b.is)
</script>
以上可以看出,使用prototype添加了新的is屬性,可以看出b裏面也加入了該屬性。
繼承
在ES6中已經引入了class、constructor(構造函數)、extends、super關鍵字,已經不需要像前面那樣定義對象了。此後和java定義類那樣就行了。
但是呢,要往類裏面添加新的屬性,還是得用prototype屬性來進行操作。
class item{
constructor() {
this.a = 1;
}
}
let b = new item();
item.prototype.aaa = "aaa";
console.log(b.aaa);
b.__proto__.bbb = 1;
console.log(b.bbb);