最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS創(chuàng)建類(lèi)和對(duì)象的兩種不同方式

 更新時(shí)間:2014年08月08日 10:06:38   投稿:whsnow  
定義了一個(gè)新的函數(shù), 你實(shí)際上聲明了一個(gè)新的類(lèi), 而這個(gè)函數(shù)本身就相當(dāng)于類(lèi)的構(gòu)造函數(shù),下面為大家展示創(chuàng)建一個(gè)新類(lèi)的兩種不同方式

在JavaScript中, 當(dāng)你定義了一個(gè)新的函數(shù), 你實(shí)際上聲明了一個(gè)新的類(lèi), 而這個(gè)函數(shù)本身就相當(dāng)于類(lèi)的構(gòu)造函數(shù)。下面的代碼向你展示了兩種不同的方式來(lái)創(chuàng)建一個(gè)新的Person類(lèi), 而Person.prototype的定義也緊跟在函數(shù)定義之后。

var Person = function(name) { // 一個(gè)匿名函數(shù), 并將這個(gè)函數(shù)賦值給一個(gè)Person變量, 此時(shí)Person成為一個(gè)類(lèi) 

this.name = name; 

} 

function Person(name) { // 直接定義一個(gè)叫做Person的函數(shù)表示Person類(lèi) 

this.name = name; 

} 

Person.prototype = { // 定義Person的prototype域 

printName: function() { // 定義一個(gè)print函數(shù) 

alert(this.name); 

} 

}

當(dāng)你通過(guò)函數(shù)的方式聲明了一個(gè)類(lèi)之后, 你就可以通過(guò)new操作符來(lái)實(shí)例化這個(gè)類(lèi)。這樣, 你就可以調(diào)用類(lèi)的成員函數(shù)來(lái)完成你的邏輯。

var person = new Person("Joe Smith"); // 使用new操作符來(lái)新建一個(gè)Person的實(shí)例, 并賦給變量person 
person.printName(); // person就可以看作是一個(gè)實(shí)例的引用(reference), 所以可以通過(guò)這個(gè)引用來(lái)調(diào)用Person類(lèi)中的成員函數(shù)

我們來(lái)總結(jié)一下創(chuàng)建一個(gè)新的類(lèi)的實(shí)例的整個(gè)流程和步驟:

1. 通過(guò)定義一個(gè)函數(shù)的方式(匿名或者實(shí)名)來(lái)聲明一個(gè)新的類(lèi).
2. 如果有必要, 定義這個(gè)新的類(lèi)的prototype域.
3. 使用new操作符緊跟你所定義的函數(shù)來(lái)創(chuàng)建一個(gè)新的類(lèi)的實(shí)例. 一旦JavaScript編譯器碰到了new操作符, 它實(shí)際上創(chuàng)建了一個(gè)空的類(lèi)實(shí)例變量.
4. 將所有這個(gè)類(lèi)的prototype域中的屬性與方法復(fù)制到這個(gè)新的實(shí)例中, 并將其成員函數(shù)中所有的this指針指向這個(gè)新創(chuàng)建的實(shí)例.
5. 接下來(lái), 執(zhí)行緊跟在new操作符后面的那個(gè)函數(shù).
6. 當(dāng)你執(zhí)行這個(gè)函數(shù)時(shí), 如果你試圖對(duì)一個(gè)不存在的屬性進(jìn)行賦值, JavaScript編譯器將自動(dòng)為你在這個(gè)實(shí)例范圍內(nèi)新創(chuàng)建這個(gè)屬性.
7. 函數(shù)執(zhí)行完畢后, 將這個(gè)初始化完成的實(shí)例返回.

在Prototype中, 使用Class對(duì)象, 你可以以一個(gè)比較簡(jiǎn)單的方式來(lái)聲明一個(gè)新的對(duì)象。通過(guò)使用Class.create(), prototype為你創(chuàng)建了一個(gè)默認(rèn)的構(gòu)造函數(shù)initialize(), 一旦你實(shí)現(xiàn)這一函數(shù), 就可以以一個(gè)類(lèi)似Java中構(gòu)造函數(shù)的方式來(lái)創(chuàng)建一個(gè)新的類(lèi)的實(shí)例。

相關(guān)文章

最新評(píng)論

启东市| 宁都县| 吉林省| 万全县| 定南县| 玉田县| 类乌齐县| 蓬溪县| 泰来县| 文昌市| 棋牌| 望谟县| 丰宁| 高邮市| 九江市| 临颍县| 镇远县| 二连浩特市| 湘潭市| 灵山县| 西安市| 垣曲县| 临漳县| 贵南县| 公安县| 南开区| 民乐县| 栖霞市| 湘潭市| 温泉县| 株洲市| 德清县| 进贤县| 博湖县| 涡阳县| 敦煌市| 彭州市| 福海县| 勃利县| 灌南县| 鄂伦春自治旗|