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

javascript中的對(duì)象創(chuàng)建 實(shí)例附注釋

 更新時(shí)間:2011年02月08日 22:47:49   作者:  
為了讓你的js代碼更加的專業(yè)與代碼的條理性,很多情況下都是定義成對(duì)象的方式來(lái)書寫代碼,想深入的朋友可以參考下。
javascript中的對(duì)象創(chuàng)建聲明:
var obj = {}; 或者 var obj = new Object(); 
為對(duì)象加入屬性,方法:
//=====第一種寫法====================================

obj.name = '小明'; //為對(duì)象加屬性
obj.updateName = function(name){//為對(duì)象定義updateName方法
this.name = name;
}
alert(obj.name);
obj.updateName("小強(qiáng)"); //調(diào)用updateName修改obj對(duì)象的name屬性值
alert(obj['name']);
第一次顯示結(jié)果為:小明
第二次顯示結(jié)果為:小強(qiáng)
//=====第二種寫法====================================
obj['name'] = '張三'; //為對(duì)象加屬性
obj['updateName'] = function(name){//為對(duì)象定義updateName方法
obj['name'] =name;
}; 
alert(obj.name);
obj.updateName('李四'); //調(diào)用updateName修改obj對(duì)象的name屬性值
alert(obj['name']);
第一次顯示結(jié)果為:張三
第二次顯示結(jié)果為:李四
//=====第三種寫法====================================
var obj = {
name: '王五', //為對(duì)象加屬性
updateName: function(name){//為對(duì)象定義updateName方法
this.name = name;   
}
};
alert(obj .name);
obj.updateName("趙六"); //調(diào)用updateName修改obj對(duì)象的name屬性值
alert(obj .name);
第一次顯示結(jié)果為:王五
第二次顯示結(jié)果為:趙六
//=====分析=====================================
第一種寫法是最普通的對(duì)象寫法,因?yàn)閖avascript是動(dòng)態(tài)語(yǔ)言,與Java和.Net不同,
在程序運(yùn)行并創(chuàng)建對(duì)象后,還可以對(duì)該對(duì)象的內(nèi)部結(jié)構(gòu)進(jìn)行修改,
比如添加屬性和方法(java和.net中的反射機(jī)制做不到這點(diǎn))。
(a): var obj = {} || new Object();
(b):obj.name = "張三";
(c):obj.updateName = function(name){ this.name = name};

當(dāng)程序執(zhí)行(a) 后,便創(chuàng)建了一個(gè)空對(duì)象(不包含任何方法和屬性)obj,
當(dāng)程序執(zhí)行(b) 后,改變了obj的內(nèi)部結(jié)構(gòu),加了一個(gè)屬性name,
當(dāng)程序執(zhí)行(c) 后,改變了obj的內(nèi)部結(jié)構(gòu),加了一個(gè)方法updateName ,
而這都是在運(yùn)行的時(shí)候完成的動(dòng)作

第二種寫法像數(shù)組,但絕不是數(shù)組,區(qū)分是不是數(shù)組可以如此判斷:
if(typeof(obj.length) == "undefined") {
alert("obj不是數(shù)組,數(shù)組都有l(wèi)ength屬性!");
}else{
alert("obj是數(shù)組!");
}
第二種寫法更像一種數(shù)據(jù)結(jié)構(gòu):map ,如:obj[key] = value;
key是字符串,value可以是任何類型,變量,對(duì)象,函數(shù)等。
可以通過(guò)這種方式遍歷對(duì)象內(nèi)部結(jié)構(gòu):
for(var key in obj)
{
alert(key);
var value = obj[key];
alert(value);
}
通過(guò)alert可以顯示出你所定義的內(nèi)容。
第三種寫法一看就是map的內(nèi)部結(jié)構(gòu)了,一個(gè)對(duì)象,內(nèi)部完全用key : value鍵值對(duì)方式表示
JSON對(duì)象也是這種結(jié)構(gòu),只要對(duì)map或者JSON對(duì)象有所熟悉的就很容易理解了。

相關(guān)文章

  • javascript 寫類方式之一

    javascript 寫類方式之一

    這篇起,會(huì)由淺到深的分析js OO之寫類方式,大概會(huì)有5-8篇。后面陸續(xù)會(huì)分析流行庫(kù)(框架)的寫類方式。為了討論的單一性,暫不考慮類的繼承,(私有,受保護(hù))屬性或方法。
    2009-07-07
  • JavaScript isPrototypeOf和hasOwnProperty使用區(qū)別

    JavaScript isPrototypeOf和hasOwnProperty使用區(qū)別

    JavaScript isPrototypeOf和hasOwnProperty的使用技巧,需要的朋友的朋友可以參考下。
    2010-03-03
  • 實(shí)現(xiàn)JavaScript中繼承的三種方式

    實(shí)現(xiàn)JavaScript中繼承的三種方式

    在JavaScript中,繼承可以通過(guò)三種手法實(shí)現(xiàn)原型鏈繼承 使用apply、call方法 對(duì)象實(shí)例間的繼承。
    2009-10-10
  • javascript 面向?qū)ο笏枷?附源碼

    javascript 面向?qū)ο笏枷?附源碼

    javascript 面向?qū)ο笏枷雽?shí)例代碼,大家可以參考下。
    2009-07-07
  • 前端開(kāi)發(fā)的開(kāi)始---基于面向?qū)ο蟮腁jax類

    前端開(kāi)發(fā)的開(kāi)始---基于面向?qū)ο蟮腁jax類

    因?yàn)槲一旧蟖jax開(kāi)發(fā)都是用jquery來(lái)完成,后來(lái)想了想,也是應(yīng)該寫一個(gè)。這樣才能提高自己的整體水平。
    2010-09-09
  • Javascript面向?qū)ο缶幊蹋ǘ?構(gòu)造函數(shù)的繼承

    Javascript面向?qū)ο缶幊蹋ǘ?構(gòu)造函數(shù)的繼承

    這個(gè)系列的第一部分,主要介紹了如何"封裝"數(shù)據(jù)和方法,以及如何從原型對(duì)象生成實(shí)例。
    2011-08-08
  • Riot.js 快速的JavaScript單元測(cè)試框架

    Riot.js 快速的JavaScript單元測(cè)試框架

    Riot是一個(gè)快速,富有表現(xiàn)力,上下文驅(qū)動(dòng) 的單元測(cè)試框架。最初是用于Ruby的單元測(cè)試,最近作者Alex Young又實(shí)現(xiàn)了Riot的JavaScript版- Riot.js。
    2009-11-11
  • JavaScript為對(duì)象原型prototype添加屬性的兩種方式

    JavaScript為對(duì)象原型prototype添加屬性的兩種方式

    為對(duì)象原型prototype添加屬性的的方法, 需要的朋友可以參考下。
    2010-08-08
  • 最新評(píng)論

    武邑县| 信丰县| 淮北市| 肥乡县| 西丰县| 德惠市| 台南县| 怀柔区| 嘉禾县| 平舆县| 南涧| 偃师市| 泰兴市| 鹤庆县| 武隆县| 舟曲县| 天等县| 延寿县| 于田县| 洞头县| 蒙阴县| 昌乐县| 海宁市| 吉安县| 磐石市| 玉龙| 石家庄市| 柞水县| 怀化市| 松潘县| 芜湖市| 巴中市| 尤溪县| 会理县| 常德市| 科尔| 泸溪县| 山丹县| 泗洪县| 平乐县| 岚皋县|