javascript 學(xué)習(xí)筆記(八)javascript對(duì)象
更新時(shí)間:2011年04月12日 00:29:23 作者:
昨天看了些有關(guān)javascript對(duì)象方面的文章,以下是自己的一些學(xué)習(xí)心得及體會(huì),希望同大家共同討論!
1、javascript中的內(nèi)置對(duì)象
javascript中除了本身的內(nèi)置對(duì)象,如以下我們所熟悉的對(duì)象:
•Array
•Date
•Math
•String
•RegExp
•……
各個(gè)對(duì)象都有自己的屬性及方法,比如我們經(jīng)常使用屬性及方法
屬性:stringObject.length; arrayObject.length;……
方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr(); arrayObject.concat(); arrayObject.push(); arrayObject.join();……
2、如何自定義對(duì)象,及添加屬性和方法
a. 通過關(guān)鍵字new創(chuàng)建
var newObject = new Object(); //創(chuàng)建一個(gè)新類
newObject.name = "new object"; //添加一個(gè)name的屬性
newObject.say = function() { //添加say()方法
alert(this.name); //output new object
}
對(duì)于以上的創(chuàng)建方法,我們可以利用JSON(JavaScript Object Notation)的方法簡(jiǎn)寫為如下代碼:
var newObject = {
name: "new object";
say: function () {
alert(this.name);
}
};
我們利用JSON的數(shù)據(jù)格式創(chuàng)建一個(gè)更為復(fù)雜的對(duì)象
var company = {
name: "tuanzz",
product: "groupon",
address: {province: "Hubei", city: "wuhan"},
person:[
{name: "zhangchen",age: "23"},
{name: "luomi", age: "23"},
],
readme: function() {
alert("My name is "+this.person[0].name+" and "+this.person[0].age+" years old");
}
};
company.readme(); //output My name is zhangchen and 23 years old;
我們可以看到,用JSON的數(shù)據(jù)格式創(chuàng)建的對(duì)象,代碼不僅看起來十分優(yōu)雅。
JSON的形式就是用大括“{}”號(hào)包括起來的項(xiàng)目列表,每一個(gè)項(xiàng)目間并用逗號(hào)“,”分隔,而項(xiàng)目就是用冒號(hào)“:”分隔的屬性名和屬性值。這是典型的字典表示形式,也再次表明了 JavaScript里的對(duì)象就是字典結(jié)構(gòu)。不管多么復(fù)雜的對(duì)象,都可以被一句JSON代碼來創(chuàng)建并賦值。
b、通過構(gòu)造函數(shù)來創(chuàng)建對(duì)象
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new objectFun("zhangchen");
newObject.say(); //output zhangchen
首先新建一個(gè)objectFun()函數(shù),其中定義了屬性和方法,這里我們可以把objectFun看作一個(gè)類(在javascript中函數(shù)就是對(duì)象),然后通過new實(shí)例化出一個(gè)對(duì)象,newObject對(duì)象中同樣也有了父類中屬性和方法。
我們可以用以下代碼來檢測(cè)函數(shù)確實(shí)是對(duì)象:
//普通函數(shù)
function say(s) {
alert(s);
}
say("hi");
//給函數(shù)對(duì)象賦屬性,函數(shù)就是對(duì)象
say.test = "it can work?";
alert(say.test); //output it can work?
如何理解以上創(chuàng)建對(duì)象的方法?我們看下面的代碼:
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new Object(); //創(chuàng)建一個(gè)空對(duì)象
objectFun.call(newObject, "zhangchen"); //將newObject作為this參數(shù)調(diào)用objectFun函數(shù)
newObject.say("zhangchen");//output zhangchen
首先創(chuàng)建一個(gè)newObject對(duì)象,newObject作為this參數(shù)調(diào)用objectFun函數(shù)。講了這么多,我們完全可以把objectFun作為構(gòu)造函數(shù)來使用。
-------------------------------------------------------------------------------------------------------------------------------------------------
余下內(nèi)容大家可參考李戰(zhàn)寫的悟透JavaScript
javascript中除了本身的內(nèi)置對(duì)象,如以下我們所熟悉的對(duì)象:
•Array
•Date
•Math
•String
•RegExp
•……
各個(gè)對(duì)象都有自己的屬性及方法,比如我們經(jīng)常使用屬性及方法
屬性:stringObject.length; arrayObject.length;……
方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr(); arrayObject.concat(); arrayObject.push(); arrayObject.join();……
2、如何自定義對(duì)象,及添加屬性和方法
a. 通過關(guān)鍵字new創(chuàng)建
復(fù)制代碼 代碼如下:
var newObject = new Object(); //創(chuàng)建一個(gè)新類
newObject.name = "new object"; //添加一個(gè)name的屬性
newObject.say = function() { //添加say()方法
alert(this.name); //output new object
}
對(duì)于以上的創(chuàng)建方法,我們可以利用JSON(JavaScript Object Notation)的方法簡(jiǎn)寫為如下代碼:
復(fù)制代碼 代碼如下:
var newObject = {
name: "new object";
say: function () {
alert(this.name);
}
};
我們利用JSON的數(shù)據(jù)格式創(chuàng)建一個(gè)更為復(fù)雜的對(duì)象
復(fù)制代碼 代碼如下:
var company = {
name: "tuanzz",
product: "groupon",
address: {province: "Hubei", city: "wuhan"},
person:[
{name: "zhangchen",age: "23"},
{name: "luomi", age: "23"},
],
readme: function() {
alert("My name is "+this.person[0].name+" and "+this.person[0].age+" years old");
}
};
company.readme(); //output My name is zhangchen and 23 years old;
我們可以看到,用JSON的數(shù)據(jù)格式創(chuàng)建的對(duì)象,代碼不僅看起來十分優(yōu)雅。
JSON的形式就是用大括“{}”號(hào)包括起來的項(xiàng)目列表,每一個(gè)項(xiàng)目間并用逗號(hào)“,”分隔,而項(xiàng)目就是用冒號(hào)“:”分隔的屬性名和屬性值。這是典型的字典表示形式,也再次表明了 JavaScript里的對(duì)象就是字典結(jié)構(gòu)。不管多么復(fù)雜的對(duì)象,都可以被一句JSON代碼來創(chuàng)建并賦值。
b、通過構(gòu)造函數(shù)來創(chuàng)建對(duì)象
復(fù)制代碼 代碼如下:
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new objectFun("zhangchen");
newObject.say(); //output zhangchen
首先新建一個(gè)objectFun()函數(shù),其中定義了屬性和方法,這里我們可以把objectFun看作一個(gè)類(在javascript中函數(shù)就是對(duì)象),然后通過new實(shí)例化出一個(gè)對(duì)象,newObject對(duì)象中同樣也有了父類中屬性和方法。
我們可以用以下代碼來檢測(cè)函數(shù)確實(shí)是對(duì)象:
復(fù)制代碼 代碼如下:
//普通函數(shù)
function say(s) {
alert(s);
}
say("hi");
//給函數(shù)對(duì)象賦屬性,函數(shù)就是對(duì)象
say.test = "it can work?";
alert(say.test); //output it can work?
如何理解以上創(chuàng)建對(duì)象的方法?我們看下面的代碼:
復(fù)制代碼 代碼如下:
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new Object(); //創(chuàng)建一個(gè)空對(duì)象
objectFun.call(newObject, "zhangchen"); //將newObject作為this參數(shù)調(diào)用objectFun函數(shù)
newObject.say("zhangchen");//output zhangchen
首先創(chuàng)建一個(gè)newObject對(duì)象,newObject作為this參數(shù)調(diào)用objectFun函數(shù)。講了這么多,我們完全可以把objectFun作為構(gòu)造函數(shù)來使用。
-------------------------------------------------------------------------------------------------------------------------------------------------
余下內(nèi)容大家可參考李戰(zhàn)寫的悟透JavaScript
您可能感興趣的文章:
- Javascript 入門基礎(chǔ)學(xué)習(xí)
- JavaScript 學(xué)習(xí)筆記二 字符串拼接
- javascript 模式設(shè)計(jì)之工廠模式學(xué)習(xí)心得
- JavaScript 構(gòu)造函數(shù) 面相對(duì)象學(xué)習(xí)必備知識(shí)
- 寫給想學(xué)習(xí)Javascript的朋友一點(diǎn)學(xué)習(xí)經(jīng)驗(yàn)小結(jié)
- javascript學(xué)習(xí)筆記(二) 鼠標(biāo)經(jīng)過時(shí),改變div塊的背景色的代碼
- javascript 學(xué)習(xí)筆記(六)瀏覽器類型及版本信息檢測(cè)代碼
- javascript學(xué)習(xí)筆記(七)利用javascript來創(chuàng)建和存儲(chǔ)cookie
- javascript學(xué)習(xí)筆記(九)javascript中的原型(prototype)及原型鏈的繼承方式
- javascript的正則表達(dá)式學(xué)習(xí)資料復(fù)習(xí)
- JavaScript高級(jí)程序設(shè)計(jì) 學(xué)習(xí)筆記 js高級(jí)技巧
- JavaScript學(xué)習(xí)小結(jié)(一)——JavaScript入門基礎(chǔ)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Array數(shù)組)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Boolean對(duì)象)
相關(guān)文章
javascript中判斷一個(gè)值是否在數(shù)組中并沒有直接使用
在JS中要判斷一個(gè)值是否在數(shù)組中并沒有函數(shù)直接使用,如PHP中就有in_array()這個(gè)函數(shù),可以寫一個(gè)類似in_array()函數(shù)功能的方法2012-12-12
javascript 基礎(chǔ)篇4 window對(duì)象,DOM
window這個(gè)對(duì)象我們之前也稍微接觸過了,其實(shí)就是對(duì)窗體進(jìn)行操作,利用這個(gè)對(duì)象我們可以實(shí)現(xiàn)很多的操作,比如窗口移動(dòng)啊,設(shè)置窗口大小啊等等
2012-03-03
在Javascript中 聲明時(shí)用"var"與不用"var"的區(qū)別
Javascript聲明變量的時(shí)候,雖然用var關(guān)鍵字聲明和不用關(guān)鍵字聲明,很多時(shí)候運(yùn)行并沒有問題,但是這兩種方式還是有區(qū)別的
2013-04-04
JavaScript實(shí)現(xiàn)快速排序(自已編寫)
用到j(luò)avascript的排序一組數(shù)字,js沒有直接的數(shù)字比較的函數(shù)可以調(diào)用,所以自己寫了一個(gè)快速排序,需要的朋友可以了解下
2012-12-12
ASP小貼士/ASP Tips javascript tips可以當(dāng)桌面
今天看到《ASP小貼士/ASP Tips》 我也去把JavaScript的tips 下下來了。 看看是A4的。 自己把他改成1024 * 768 剛好可以用來做桌面
2009-12-12 
