原型鏈

1.創(chuàng)建對象有幾種方法

//第一種方式:字面量
var o1 = {name:'o1'};
var o2 = new Object({name:'o2'});
//第二種方式:通過構(gòu)造函數(shù)
var M = function(name){this.name = name;}
var o3 = new M('o3');
//第三種方式:Object.create
var p = {name:'p"};
var o4 = Object.create(p);

結(jié)果展示:

image.png

2.原型、構(gòu)造函數(shù)、實例、原型鏈

image.png
M.prototype.constructor===M
O3.__proto__===M.prototype

原型對象的方法是被不同的實例共有的
//第二種方式:通過構(gòu)造函數(shù)
var M = function(name){this.name = name;}
var o3 = new M('o3');
//第三種方式:Object.create
var p = {name:'p"};
var o4 = Object.create(p);

M.prototype.say = function(){
    console.log('say hi');
}
var o5 = new M('o5');
image.png

Object.prototype

  • 只有函數(shù)才有prototype,對象是沒有的;
  • 只有實例才有proto
M.__proto__===function.prototype

//M的構(gòu)造函數(shù)是function,M是function函數(shù)的實例

3.instanceof的原理

image.png

4.new運算符

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容