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

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

 更新時間:2010年06月09日 01:11:25   作者:  
關(guān)于JavaScript構(gòu)造函數(shù),如今出現(xiàn)了很多JavaScript的框架,例如jQuery、Ext等等這些,這些將JavaScript作為一種面向?qū)ο蟮恼Z言進行編程,那么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。這句話就是進行一個屬性的申明與賦值,這里,我們肯定會問到,this是什么?為什么可以使用this.x來進行申明與賦值屬性呢?

其實this代表的就是我們剛剛實例化出來的obj,就相當于我們使用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來定義一個類(當然它更多用來擴展一個類),Ext整個框架各種控件如Panel,MessageBox等都是用Ext.extend方法來擴展。這里僅僅用它來定義一個最簡單的類。
    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)語言,在語法上有相當大的自由度,所以造成了一種功能,有N種寫法的局面。 在JS中實現(xiàn)OOP,一般來說有兩種方法:
    2008-03-03
  • javascript類繼承機制的原理分析

    javascript類繼承機制的原理分析

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

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

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

    济阳县| 栾城县| 沧州市| 南通市| 宿松县| 泗阳县| 定兴县| 建昌县| 汉中市| 西盟| 台南县| 榆林市| 德保县| 建德市| SHOW| 越西县| 丽水市| 清涧县| 双鸭山市| 博乐市| 卫辉市| 应用必备| 靖安县| 客服| 井冈山市| 龙州县| 北宁市| 赤水市| 曲麻莱县| 高密市| 嘉黎县| 南召县| 万山特区| 内丘县| 仙居县| 阜宁县| 灵川县| 米脂县| 东至县| 中方县| 普格县|