不錯(cuò)的JavaScript面向?qū)ο蟮暮?jiǎn)單入門(mén)介紹第1/2頁(yè)
更新時(shí)間:2008年07月03日 20:50:41 作者:
JavaScript是一門(mén)OOP,而有些人說(shuō),JavaScript是基于對(duì)象的。
1) 如何創(chuàng)建對(duì)象:
1. 使用constructor,例如:
var obj = new Object() // var 可以省略
var obj = new Date()
2. 使用對(duì)象字面值(object literals),例如:
程序代碼
var obj = "123" // 創(chuàng)建一個(gè)String對(duì)象
var obj = /^abc$/ //創(chuàng)建一個(gè)RegExp對(duì)象
更加復(fù)雜的情況是,我們可以直接生成一個(gè)自定義的只有屬性的對(duì)象:
程序代碼
var obj = {
name:"killercat",
home:"www.i170.com/user/killercat"
}
document.write(obj.name+"<br />")
document.write(obj.home)
結(jié)果:
killercat
www.i170.com/user/killercat
2) JavaScript中的屬性:
str = "www.i170.com/user/killercat" // str 一個(gè)字符串對(duì)象的引用
document.write(str.length)
通過(guò)對(duì)象的引用加上"."再加上屬性名,可以訪問(wèn)到這個(gè)屬性,也可以修改這個(gè)屬性,甚至是添加一個(gè)屬性,比如:
var obj = new Object()
obj.name = "killercat" // 為對(duì)象直接添加一個(gè)屬性
document.write(obj.name) // 訪問(wèn)對(duì)象的屬性
obj.name = "kcat" // 修改對(duì)象的屬性
document.write(obj.name)
枚舉屬性值:
使用 for ... in 語(yǔ)句可以枚舉屬性(具體來(lái)說(shuō)就是枚舉屬性名),前面已經(jīng)提到過(guò),比如
for(ele in window){
document.write(ele+"<br />")
}
如何得到屬性值?
obj = new Object()
obj.p1 = "a"
obj.p2 = "b"
obj.p3 = "c"
for(ele in obj)
document.write(obj.ele) // 這是新手可能犯的錯(cuò)誤,obj.ele 的值是undefined
應(yīng)該這樣訪問(wèn)屬性值:
document.write(eval("obj."+ele))
未定義的屬性:
obj = new Object()
document.write(obj.name)
結(jié)果是:undefined
刪除屬性:
obj = new Object()
obj.name = "killercat"
delete obj.name
document.write(obj.name)
結(jié)果是:undefined
理解屬性:
我們知道在Java,c++中,屬性要么屬于某個(gè)類(lèi)(類(lèi)屬性或說(shuō)是靜態(tài)屬性),要么屬于對(duì)象,也就是說(shuō),同一個(gè)類(lèi)的對(duì)象,一定有一樣的屬性,但是JavaScript不一樣,同樣是Object的對(duì)象,卻可以有不同的屬性。除了這類(lèi)的屬性,JavaScript中還有靜態(tài)的屬性(變量)。
3) Constructor
源于某些未知原因,有些人似乎不愿意在JavaScript提到classes這個(gè)詞,取代的是"對(duì)象的類(lèi)型(object types)",甚至有些人直接叫函數(shù),于是可以看見(jiàn)這樣的說(shuō)法:“我們通過(guò)預(yù)先定義好的函數(shù),產(chǎn)生了一個(gè)對(duì)象”。本文使用類(lèi),這個(gè)名詞。
JavaScript 定義方法的方式和定義類(lèi)的方式一模一樣:
function User(name,sex){ // 定義了類(lèi) User
this.name = name;
this.sex = sex;
}
user = new User("kc","man")
document.write(user.name+"<br />"+user.sex)
contructor的作用就是在初始化屬性(變量)
1. 使用constructor,例如:
var obj = new Object() // var 可以省略
var obj = new Date()
2. 使用對(duì)象字面值(object literals),例如:
程序代碼
var obj = "123" // 創(chuàng)建一個(gè)String對(duì)象
var obj = /^abc$/ //創(chuàng)建一個(gè)RegExp對(duì)象
更加復(fù)雜的情況是,我們可以直接生成一個(gè)自定義的只有屬性的對(duì)象:
程序代碼
var obj = {
name:"killercat",
home:"www.i170.com/user/killercat"
}
document.write(obj.name+"<br />")
document.write(obj.home)
結(jié)果:
killercat
www.i170.com/user/killercat
2) JavaScript中的屬性:
str = "www.i170.com/user/killercat" // str 一個(gè)字符串對(duì)象的引用
document.write(str.length)
通過(guò)對(duì)象的引用加上"."再加上屬性名,可以訪問(wèn)到這個(gè)屬性,也可以修改這個(gè)屬性,甚至是添加一個(gè)屬性,比如:
var obj = new Object()
obj.name = "killercat" // 為對(duì)象直接添加一個(gè)屬性
document.write(obj.name) // 訪問(wèn)對(duì)象的屬性
obj.name = "kcat" // 修改對(duì)象的屬性
document.write(obj.name)
枚舉屬性值:
使用 for ... in 語(yǔ)句可以枚舉屬性(具體來(lái)說(shuō)就是枚舉屬性名),前面已經(jīng)提到過(guò),比如
for(ele in window){
document.write(ele+"<br />")
}
如何得到屬性值?
obj = new Object()
obj.p1 = "a"
obj.p2 = "b"
obj.p3 = "c"
for(ele in obj)
document.write(obj.ele) // 這是新手可能犯的錯(cuò)誤,obj.ele 的值是undefined
應(yīng)該這樣訪問(wèn)屬性值:
document.write(eval("obj."+ele))
未定義的屬性:
obj = new Object()
document.write(obj.name)
結(jié)果是:undefined
刪除屬性:
obj = new Object()
obj.name = "killercat"
delete obj.name
document.write(obj.name)
結(jié)果是:undefined
理解屬性:
我們知道在Java,c++中,屬性要么屬于某個(gè)類(lèi)(類(lèi)屬性或說(shuō)是靜態(tài)屬性),要么屬于對(duì)象,也就是說(shuō),同一個(gè)類(lèi)的對(duì)象,一定有一樣的屬性,但是JavaScript不一樣,同樣是Object的對(duì)象,卻可以有不同的屬性。除了這類(lèi)的屬性,JavaScript中還有靜態(tài)的屬性(變量)。
3) Constructor
源于某些未知原因,有些人似乎不愿意在JavaScript提到classes這個(gè)詞,取代的是"對(duì)象的類(lèi)型(object types)",甚至有些人直接叫函數(shù),于是可以看見(jiàn)這樣的說(shuō)法:“我們通過(guò)預(yù)先定義好的函數(shù),產(chǎn)生了一個(gè)對(duì)象”。本文使用類(lèi),這個(gè)名詞。
JavaScript 定義方法的方式和定義類(lèi)的方式一模一樣:
function User(name,sex){ // 定義了類(lèi) User
this.name = name;
this.sex = sex;
}
user = new User("kc","man")
document.write(user.name+"<br />"+user.sex)
contructor的作用就是在初始化屬性(變量)
您可能感興趣的文章:
- JavaScript面向?qū)ο蟮膬煞N書(shū)寫(xiě)方法以及差別
- JavaScript面向?qū)ο缶幊?/a>
- JS面向?qū)ο?、prototype、call()、apply()
- javascript 面向?qū)ο笕吕砭氈當(dāng)?shù)據(jù)的封裝
- Javascript 面向?qū)ο螅ㄒ唬?共有方法,私有方法,特權(quán)方法)
- JS左右無(wú)縫滾動(dòng)(一般方法+面向?qū)ο蠓椒ǎ?/a>
- jquery方法+js一般方法+js面向?qū)ο蠓椒▽?shí)現(xiàn)拖拽效果
- javascript面向?qū)ο笕腴T(mén)基礎(chǔ)詳細(xì)介紹
- 學(xué)習(xí)javascript面向?qū)ο?理解javascript對(duì)象
相關(guān)文章
改變javascript函數(shù)內(nèi)部this指針指向的三種方法
javascript 的this 值,真的是非常的莫名奇妙。我一直被搞的很頭暈,也許正是這個(gè)this,讓大多數(shù)人感覺(jué)js 非常的莫名其妙。2010-04-04
javascript面向?qū)ο缶幊?一) 實(shí)例代碼
javascript面向?qū)ο缶幊虒?shí)例代碼,代碼也算比較基礎(chǔ)了,不懂得朋友可以參考腳本之家之前發(fā)布的文章。2010-06-06
javascript 面向?qū)ο缶幊袒A(chǔ):封裝
“在面向?qū)ο蟮乃枷胫校詈诵牡母拍钪痪褪穷?lèi)。一個(gè)類(lèi)表示了具有相似性質(zhì)的一類(lèi)事物的抽象,通過(guò)實(shí)例化一個(gè)類(lèi),可以獲得屬于該類(lèi)的一個(gè)實(shí)例(即對(duì)象)”。2009-08-08
一實(shí)用的實(shí)現(xiàn)table排序的Javascript類(lèi)庫(kù)
一實(shí)用的實(shí)現(xiàn)table排序的Javascript類(lèi)庫(kù)...2007-09-09
Javascript 類(lèi)與靜態(tài)類(lèi)的實(shí)現(xiàn)
在Javascript里,對(duì)面向?qū)ο蟛](méi)有一個(gè)直接的實(shí)現(xiàn),對(duì)于代碼方面也是非常的靈活。2010-04-04
javascript 設(shè)計(jì)模式之單體模式 面向?qū)ο髮W(xué)習(xí)基礎(chǔ)
單體是在腳本加載時(shí)創(chuàng)建的,能將一系列有關(guān)聯(lián)的變量和方法組織為一個(gè)邏輯單元,邏輯單元里面的內(nèi)容通過(guò)單一的變量進(jìn)行訪問(wèn),也是筆記基礎(chǔ)與常用的面向?qū)ο蟮亩x方法。2010-04-04

