国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
博客園 - 鳥食軒 - JScript中的prototype(原型)屬性研究(1)

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

    我們知道JScript中對象的prototype屬性,是用來返回對象類型原型的引用的。我們使用prototype屬性提供對象的類的一組基本功能。并且對象的新實例會"繼承"賦予該對象原型的操作。但是這個prototype到底是怎么實現(xiàn)和被管理的呢?

    對于對象的prototype屬性的說明,JScript手冊上如是說:所有 JScript 內(nèi)部對象都有只讀的 prototype 屬性??梢韵蚱湓椭袆討B(tài)添加功能(屬性和方法),但該對象不能被賦予不同的原型。然而,用戶定義的對象可以被賦給新的原型。

    下面我們看三個經(jīng)典的prototype屬性的使用示例。

    1、為腳本環(huán)境內(nèi)建對象添加方法:

 Array.prototype.max = function()
 {
     
var i, max = this[0];
     
for (i = 1; i < this.length; i++)
     {
       
if (max < this[i])
        max 
= this[i];
     }
    
return max;
 };

    2、為用戶自定義類添加方法:
 function TestObject(name)
 {
     
this.m_Name = name;
 }

 TestObject.prototype.ShowName 
= function()
 {
     alert(
this.m_Name);
 };

    3、更新自定義類的prototype:
 function TestObjectA()
 {
    
this.MethodA = function()
    {
       alert(‘TestObjectA.MethodA()‘);
    }
 }

 
function TestObjectB()
 {
    
this.MethodB = function()
    {
       alert(‘TestObjectB.MethodB()‘);
    }
 }

 TestObjectB.prototype 
= new TestObjectA();

    第三個很眼熟吧?對啊,它就是我們前面介紹的原型繼承法呀~~ 不過今天我們不是研究"繼承",之所以可以這樣來實現(xiàn)一種繼承,只是利用了prototype屬性的一個副作用而已。

    prototype還有一個默認的屬性:constructor,是用來表示創(chuàng)建對象的函數(shù)的(即我們OOP里說的構(gòu)造函數(shù))。constructor屬性是所有具有prototype屬性的對象的成員。它們包括除Global和Math對象以外的所有JScript內(nèi)部對象。constructor屬性保存了對構(gòu)造特定對象實例的函數(shù)的引用。

    弄清楚了JScript中prototype屬性怎么使用后,下面我們再來深入的研究它。

posted on 2005-02-17 22:59 birdshome 閱讀(7091) 評論(6)  編輯 收藏 收藏至365Key 所屬分類: JScript&DHTML開發(fā)

評論

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

暈,我正看著下面要怎么寫呢。敲一下回車就提交了。
不好意思,請刪除。
說說對第三種的看法:

個人認為這樣寫不是很方便。^_^

還不如:

function TestObjectA()
{
this.MethodA = function()
{
alert(‘TestObjectA.MethodA()‘);
}
this.MethodB = function()
{
alert(‘TestObjectB.MethodB()‘);
}
}

可能是我喜歡使用js的動態(tài)性的原因吧!
像第三種一定得加上TestObjectB.prototype = new TestObjectA();
這樣很不方便。
我覺得還不如在某些不需要MethodA 的地方加上delete。這樣就很像virtual了。
比如:
<script>
function A(){
this.a = function(){
alert("asdf");
}
this.b = function(){
alert("ttt");
}
}
var a = new A();
for(var item in a) a[item]();
delete a.a;
for(var item in a) a[item]();
</script>
這樣可以想覆蓋就覆蓋,想刪除就刪除,想使用就使用。
2005-02-18 03:43 | 辣妹子

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

這個主題專講prototype,例三只是說明用戶可以覆蓋自定"類"的prototype而已。謝謝你的意見,不過好像更適合JS的OOP這樣的討論哦。
2005-02-18 10:13 | birdshome

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

"3、更新自定義類的prototype:"
這個傻了吧? 不是也用了this.methodxx = xx了么?
寫東西要統(tǒng)一
2005-03-13 13:07 | xx

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

@xx
這個和第2個一樣嗎?你理解的是什么?
2005-03-13 13:29 | birdshome

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

好好利用prototype是我的目標(biāo)。謝謝樓主的講解,真是令人茅塞頓開!
2005-07-19 19:27 | 軒轅劍

# re: JScript中的prototype(原型)屬性研究(1)  回復(fù)   

謝謝樓主的講解 真透徹
2005-11-23 14:11 | 大飛
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
prototype屬性為javascript對象擴展屬性和方法
javascript——prototype與
修改構(gòu)造函數(shù)原型——JavaScript中的對象(二)
深入理解javascript原型和閉包(6)
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服