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

JavaScript 構(gòu)造函數(shù) 面相對象學(xué)習(xí)必備知識

 更新時間:2010年06月09日 01:11:25   作者:  
關(guān)于JavaScript構(gòu)造函數(shù),如今出現(xiàn)了很多JavaScript的框架,例如jQuery、Ext等等這些,這些將JavaScript作為一種面向?qū)ο蟮恼Z言進(jìn)行編程,那么JavaScript到底是怎么樣實現(xiàn)面向?qū)ο蟮囊恍┨卣鞯哪兀紫?,我們來看看JavaScript怎么樣來定義一個構(gòu)造函數(shù)。
復(fù)制代碼 代碼如下:

function A(x)
{
this.x = x;
}
var obj = new A(5);
alert(obj.x);

這段代碼十分簡單,但是我們重要的是看到了一個十分驚訝的結(jié)果,obj被我們賦予了一個屬性x,就如同我們在C#中使用某個類的實例的時候一樣。那么這個屬性是怎么樣產(chǎn)生的呢?

關(guān)鍵語句:this.x=x。這句話就是進(jìn)行一個屬性的申明與賦值,這里,我們肯定會問到,this是什么?為什么可以使用this.x來進(jìn)行申明與賦值屬性呢?

其實this代表的就是我們剛剛實例化出來的obj,就相當(dāng)于我們使用obj去調(diào)用了構(gòu)造函數(shù)A里面的屬性、方法等等。

那么,我們怎么樣去在構(gòu)造函數(shù)中定義一個方法呢?

復(fù)制代碼 代碼如下:

function A(x,y)
{
this.x = x;
this.y = y;
A.prototype.FunX = function(){alert(x)};
A.prototype.FunY = function(){alert(y)};
}
var obj = new A(5,10);
alert(obj.x);
alert(obj.y);
obj.FunX();
obj.FunY();

執(zhí)行的結(jié)果十分簡單,彈出5、10、5、10的結(jié)果,可以看到
復(fù)制代碼 代碼如下:

A.prototype.FunX = function(){alert(x)};
A.prototype.FunY = function(){alert(y)};

這兩句代碼定義了兩個方法,分別是FunX和FunY。那么,如果現(xiàn)在出現(xiàn)了一種情況,如果我們需要臨時的給A函數(shù)添加方法怎么辦呢?

復(fù)制代碼 代碼如下:

function A(x,y)
{
this.x = x;
this.y = y;
}
A.prototype.FunX = function(){alert("5")};
var obj = new A(5,10);
alert(obj.x);
alert(obj.y);
obj.FunX();
A.prototype.FunY = function(){alert("10")};
obj.FunY();

運行這段代碼,我們可以看到,彈出的結(jié)果還是和以前的結(jié)果一樣,但是我們將兩個方法都定義在了外邊,而且方法FunY是定義在實例化之后的,那么這里大家看出來了什么沒?很顯然,在我們使用obj.FunY()語句時候,代碼會重新的去構(gòu)造一下obj,然后再來執(zhí)行此方法,那么如果代碼改成這樣?
復(fù)制代碼 代碼如下:

obj.FunY();
A.prototype.FunY = function(){alert("10")};

很顯然,F(xiàn)unY()就不會去執(zhí)行方法了。

下一遍,將會說一下關(guān)于JavaScript的構(gòu)造函數(shù)與原型(prototype),若有疑問或不正之處,歡迎提出指正和討論。

相關(guān)文章

  • javascript最常用與實用的創(chuàng)建類的代碼

    javascript最常用與實用的創(chuàng)建類的代碼

    組合構(gòu)造函數(shù)模式和原型模式
    2010-08-08
  • JavaScript中的面向?qū)ο蠼榻B

    JavaScript中的面向?qū)ο蠼榻B

    在JavaScript,可以說everything is object,那么什么是對象?對象就是包含一組變量和函數(shù)的集合。在其它面向?qū)ο笳Z言中對象是由類的實例化而來,JavaScript是基于原型的面向?qū)ο笳Z言,沒有類的概念,對象派生自現(xiàn)有對象的副本
    2012-06-06
  • javascript 寫類方式之八

    javascript 寫類方式之八

    這里用的是Ext core3.0,Ext中用Ext.extend來定義一個類(當(dāng)然它更多用來擴(kuò)展一個類),Ext整個框架各種控件如Panel,MessageBox等都是用Ext.extend方法來擴(kuò)展。這里僅僅用它來定義一個最簡單的類。
    2009-07-07
  • JavaScript 面向?qū)ο笕腴T精簡篇

    JavaScript 面向?qū)ο笕腴T精簡篇

    圍繞面向?qū)ο蟮膸状箨P(guān)鍵字:封裝 ,繼承 ,多態(tài) ,展開JavaScript面向?qū)ο?/div> 2009-03-03
  • brook javascript框架介紹

    brook javascript框架介紹

    brook是一個針對大規(guī)模web開發(fā)的Javascript框架,而不是一個工具集。
    2011-10-10
  • JavaScript的面向?qū)ο蠓椒ㄒ约安顒e

    JavaScript的面向?qū)ο蠓椒ㄒ约安顒e

    JS作為一種動態(tài)語言,在語法上有相當(dāng)大的自由度,所以造成了一種功能,有N種寫法的局面。 在JS中實現(xiàn)OOP,一般來說有兩種方法:
    2008-03-03
  • javascript類繼承機(jī)制的原理分析

    javascript類繼承機(jī)制的原理分析

    本文著重解析javascript類繼承機(jī)制,讓你從底層了解javascript是怎樣實現(xiàn)“繼承”這一概念的。
    2009-09-09
  • Javascript函數(shù)加殼多用于事件綁定

    Javascript函數(shù)加殼多用于事件綁定

    逸云.framework by Neequ 幫助:將改寫函數(shù)體,使得同名函數(shù)可以同時執(zhí)行 func 將之加殼的函數(shù)體字符串 name 函數(shù)名 obj 可選,默認(rèn)為 window,為應(yīng)用函數(shù)的父對象,多用于事件綁定
    2007-12-12
  • 最新評論

    商洛市| 洛扎县| 松江区| 宁阳县| 宿迁市| 天峻县| 松潘县| 黑水县| 天水市| 安化县| 黔西| 枝江市| 尚义县| 柳州市| 新竹县| 万安县| 仁怀市| 微博| 济源市| 安龙县| 长阳| 张家港市| 博爱县| 南宫市| 长兴县| 枝江市| 瓦房店市| 神农架林区| 揭东县| 弥渡县| 屏东县| 九龙城区| 长岭县| 高唐县| 高密市| 莒南县| 明光市| 浮梁县| 邵东县| 伽师县| 泸西县|