国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中創建對象和繼承示例解讀

2019-11-20 21:07:18
字體:
來源:轉載
供稿:網友
對象創建:

當一個函數對象被創建時候,Function構造器產生的函數對象會運行類似這樣的代碼:
復制代碼 代碼如下:

this.prototype={constructor:this};

假設函數F
F用new方式構造對象時,對象的constructor被設置成這個F.prototype.constructor
如果函數在創建對象前修改了函數的prototype,會影響創建出來對象的construtor屬性

如:
復制代碼 代碼如下:

function F(){};
F.prototype={constructor:'1111'};
var o=new F();//o.constructor===‘1111' true

繼承原理:

JavaScript中的繼承是使用原型鏈的機制,每個函數的實例都共享構造函數prototype屬性中定義的數據,要使一個類繼承另一個,需要把父函數實例賦值到子函數的prototype屬性。并且在每次new實例對象時,對象的私有屬性__proto__會被自動連接到構造函數的prototype。

instanceof就是查找實例對象的私有prototype屬性鏈來確定是否是指定對象的實例

具體實例:
復制代碼 代碼如下:

//instanceof實現
function Myinstanceof(obj,type)
{
var proto=obj.__proto__;
while(proto)
{
if(proto ===type.prototype)break;
proto=proto.__proto__;
}
return proto!=null;
}


function View(){}
function TreeView(){}
TreeView.prototype=new View();//TreeView.prototype.__proto__=TreeView.prototype 自動完成
TreeView.prototype.constructor=TreeView;//修正constructor
var view=new TreeView();//view.__proto__=TreeView.prototype 自動完成
alert(view instanceof View); //true 查找到view.__proto__.__proto__時找到
alert(view instanceof TreeView); //true 查找到view.__proto__時找到
alert(Myinstanceof(view,View)); //true
alert(Myinstanceof(view,TreeView)); //true
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽普县| 济阳县| 和政县| 会泽县| 汝阳县| 汤阴县| 丘北县| 蓬莱市| 江陵县| 海丰县| 皋兰县| 固始县| 衡水市| 西乌| 云阳县| 桂东县| 平泉县| 普洱| 康保县| 广汉市| 巩留县| 郴州市| 健康| 巴林右旗| 乐业县| 莒南县| 临邑县| 鸡东县| 邹城市| 巧家县| 九寨沟县| 道孚县| 北海市| 封丘县| 同心县| 天全县| 泰安市| 莱西市| 鄱阳县| 泰安市| 清徐县|