JScript中的prototype(原型)屬性研究(1)

我們知道JScript中對象的prototype屬性,是用來(lái)返回對象類(lèi)型原型的引用的。我們使用prototype屬性提供對象的類(lèi)的一組基本功能。并且對象的新實(shí)例會(huì )"繼承"賦予該對象原型的操作。但是這個(gè)prototype到底是怎么實(shí)現和被管理的呢?
對于對象的prototype屬性的說(shuō)明,JScript手冊上如是說(shuō):所有 JScript 內部對象都有只讀的 prototype 屬性??梢韵蚱湓椭袆?dòng)態(tài)添加功能(屬性和方法),但該對象不能被賦予不同的原型。然而,用戶(hù)定義的對象可以被賦給新的原型。
下面我們看三個(gè)經(jīng)典的prototype屬性的使用示例。
1、為腳本環(huán)境內建對象添加方法:










2、為用戶(hù)自定義類(lèi)添加方法:









3、更新自定義類(lèi)的prototype:

















第三個(gè)很眼熟吧?對啊,它就是我們前面介紹的原型繼承法呀~~ 不過(guò)今天我們不是研究"繼承",之所以可以這樣來(lái)實(shí)現一種繼承,只是利用了prototype屬性的一個(gè)副作用而已。
prototype還有一個(gè)默認的屬性:constructor,是用來(lái)表示創(chuàng )建對象的函數的(即我們OOP里說(shuō)的構造函數)。constructor屬性是所有具有prototype屬性的對象的成員。它們包括除Global和Math對象以外的所有JScript內部對象。constructor屬性保存了對構造特定對象實(shí)例的函數的引用。
弄清楚了JScript中prototype屬性怎么使用后,下面我們再來(lái)深入的研究它。
posted on 2005-02-17 22:59 birdshome 閱讀(7091) 評論(6) 編輯 收藏 收藏至365Key 所屬分類(lèi): JScript&DHTML開(kāi)發(fā)

