免费游戏不用登录直接玩,苹果6s plus,不朽情缘滴血大奖视频,电子pga是什么意思

javascript程序設(shè)計(jì)

時(shí)間:2020-11-09 17:40:02 JavaScript 我要投稿

javascript程序設(shè)計(jì)

  javascript的原型鏈有顯式和隱式兩種:

  顯式原型鏈:即我們常見(jiàn)的prototype;

  隱式原型鏈:在一般環(huán)境下無(wú)法訪問(wèn),即不可見(jiàn),在FireFox下可以通過(guò)__proto__方式訪問(wèn);隱式原型鏈用于javascript引擎內(nèi)部對(duì)原型鏈的搜尋,通過(guò)顯示原型鏈來(lái)設(shè)置;

  一、prototype和__proto__的概念

  prototype是函數(shù)的一個(gè)屬性(每個(gè)函數(shù)都有一個(gè)prototype屬性),這個(gè)屬性是一個(gè)指針,指向一個(gè)對(duì)象。它是顯示修改對(duì)象的原型的屬性。

  __proto__是一個(gè)對(duì)象擁有的內(nèi)置屬性(請(qǐng)注意:prototype是函數(shù)的內(nèi)置屬性,__proto__是對(duì)象的內(nèi)置屬性),是JS內(nèi)部使用尋找原型鏈的屬性。

  用chrome和FF都可以訪問(wèn)到對(duì)象的__proto__屬性,IE不可以。

  二、new 的過(guò)程

  var Person = function(){};var p = new Person();

  new的.過(guò)程拆分成以下三步:

  (1) var p={}; 也就是說(shuō),初始化一個(gè)對(duì)象p

  (2) p.__proto__ = Person.prototype;

  (3) Person.call(p); 也就是說(shuō)構(gòu)造p,也可以稱之為初始化p

  關(guān)鍵在于第二步,我們來(lái)證明一下:

  var Person = function(){};var p = new Person();alert(p.__proto__ === Person.prototype);

  這段代碼會(huì)返回true。說(shuō)明我們步驟2是正確的。

  三、示例

  var Person = function(){};Person.prototype.sayName = function() { alert("My Name is Jacky");};Person.prototype.age = 27;var p = new Person();p.sayName();

  p是一個(gè)引用指向Person的對(duì)象。我們?cè)赑erson的原型上定義了一個(gè)sayName方法和age屬性,當(dāng)我們執(zhí)行p.age時(shí),會(huì)先在this的內(nèi)部查找(也就是構(gòu)造函數(shù)內(nèi)部),如果沒(méi)有找到然后再沿著原型鏈向上追溯。

  這里的向上追溯是怎么向上的呢?這里就要使用__proto__屬性來(lái)鏈接到原型(也就是Person.prototype)進(jìn)行查找。最終在原型上找到了age屬性。

【javascript程序設(shè)計(jì)】相關(guān)文章:

1.JavaScript高級(jí)程序設(shè)計(jì):本地對(duì)象Array

2.網(wǎng)頁(yè)程序設(shè)計(jì)之實(shí)用JavaScript代碼段

3.調(diào)用javascript

4.Javascript模板

5.淺談javascript數(shù)組

6.JavaScript 基礎(chǔ)教學(xué)

7.javascript函數(shù)詳解

8.javascript的方法

主站蜘蛛池模板: 临朐县| 镇巴县| 柘荣县| 乌海市| 藁城市| 凤山市| 古丈县| 鸡西市| 湖北省| 嫩江县| 五台县| 青海省| 巴东县| 金山区| 石泉县| 巴林左旗| 韩城市| 星子县| 噶尔县| 尚志市| 黎川县| 岳普湖县| 开封市| 修文县| 阿合奇县| 黄陵县| 朝阳区| 高邑县| 渭源县| 招远市| 平原县| 韶山市| 荔波县| 彝良县| 固原市| 阿克| 乌什县| 福泉市| 米易县| 南溪县| 德惠市|