JavaScript下申明對(duì)象的幾種方法小結(jié)
更新時(shí)間:2008年10月02日 00:41:07 作者:
在JavaScript中可以用下面的幾種方法申明對(duì)象:(從"Truly"的文章中學(xué)到)
1.var myObject = {} ;
2.function myObject()
{
....
}
3.var myObject = function(){} ;
對(duì)于后兩種方法,我們還可以增加參數(shù),這樣就類似于一個(gè)帶參數(shù)的構(gòu)造器了.
例如:
function myObject(msg)
{
alert(msg) ;
}
var newObject = new myObject('Hello,World!') ;
var myObject = function(msg)
{
alert(msg + 'again') ;
}
var newTwoObject = new myObject('Hello,World!) ;
甚至我們可以使用字符串來聲明函數(shù),這使得我們的程序更加靈活
例如:
var myObject = new Function("msg","alert(msg)") ;
// Function可以有多個(gè)入口參數(shù),最后一個(gè)參數(shù)作為方法體。
var newObject = new myObject('Hell,World!) ;
JavaScript中成員的聲明
在JavaScript中,要聲明一個(gè)對(duì)象的成員也非常簡單,但是跟其它的高級(jí)程序仍然略有不同
例如:
var myObject = {
"FirstName" : "thtwin",
"LastName" : "thtwinj2ee",
"Age" : 22,
"showFullName" : function()
{
alert(this.FirstName + ' ' + this.LastName) ;
}
} ;
myObject.showFullName() ;
在JavaScript中另一個(gè)面向?qū)ο蟮奶攸c(diǎn)是我們可以像高級(jí)編程語言一樣使用.和[]引用成員.
例如:
var dateTime = {
now : new Date(),
show : function(){
alert(new Date()) ;
}
} ;
alert(dateTime.now) ;
等價(jià)于:
alert(dateTime.now) ;
dataTime.show() ;
等價(jià)于:
dateTime["show()"] ;
對(duì)于方法調(diào)用來說,在JavaScript中,所有的對(duì)象的基類是Object,基類通過prototype定義了很多的成員
和方法,例如:toString,toLocaleString等.
例如:
var obj = {"toString" : function(){return "This is an test!" ; }} ;
alert(obj) ;
運(yùn)行時(shí),當(dāng)alert的時(shí)候toString()方法被調(diào)用了,事實(shí)上,當(dāng)JavaScript需要將一個(gè)對(duì)象轉(zhuǎn)換成字符
時(shí)就隱式調(diào)用了這個(gè)對(duì)象的toString()方法.
例如:
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var da = new Date(new Date()) ;
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var dt = new Date() + 1 ;
JavaScript中call方法的使用:
關(guān)于call的解釋:
call 方法可以用來代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。
call 方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。
例如:
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world!", show:abc};
var obj2 = { member1:"Hello world again!", show:abc};
obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);
修改后的另一個(gè)版本:
member1 = 'test';
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world", show:abc};
var obj2 = { member1:"Hello world again", show:abc};
obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);
abc(); // 此時(shí)abc中的this指向了當(dāng)前上下文
每個(gè)函數(shù)都有call方法,上面的過程中我們看到用另一個(gè)對(duì)象代替調(diào)用顯示方法,
并注意到this在對(duì)象上下文中的改變。
2.function myObject()
{
....
}
3.var myObject = function(){} ;
對(duì)于后兩種方法,我們還可以增加參數(shù),這樣就類似于一個(gè)帶參數(shù)的構(gòu)造器了.
例如:
function myObject(msg)
{
alert(msg) ;
}
var newObject = new myObject('Hello,World!') ;
var myObject = function(msg)
{
alert(msg + 'again') ;
}
var newTwoObject = new myObject('Hello,World!) ;
甚至我們可以使用字符串來聲明函數(shù),這使得我們的程序更加靈活
例如:
var myObject = new Function("msg","alert(msg)") ;
// Function可以有多個(gè)入口參數(shù),最后一個(gè)參數(shù)作為方法體。
var newObject = new myObject('Hell,World!) ;
JavaScript中成員的聲明
在JavaScript中,要聲明一個(gè)對(duì)象的成員也非常簡單,但是跟其它的高級(jí)程序仍然略有不同
例如:
var myObject = {
"FirstName" : "thtwin",
"LastName" : "thtwinj2ee",
"Age" : 22,
"showFullName" : function()
{
alert(this.FirstName + ' ' + this.LastName) ;
}
} ;
myObject.showFullName() ;
在JavaScript中另一個(gè)面向?qū)ο蟮奶攸c(diǎn)是我們可以像高級(jí)編程語言一樣使用.和[]引用成員.
例如:
var dateTime = {
now : new Date(),
show : function(){
alert(new Date()) ;
}
} ;
alert(dateTime.now) ;
等價(jià)于:
alert(dateTime.now) ;
dataTime.show() ;
等價(jià)于:
dateTime["show()"] ;
對(duì)于方法調(diào)用來說,在JavaScript中,所有的對(duì)象的基類是Object,基類通過prototype定義了很多的成員
和方法,例如:toString,toLocaleString等.
例如:
var obj = {"toString" : function(){return "This is an test!" ; }} ;
alert(obj) ;
運(yùn)行時(shí),當(dāng)alert的時(shí)候toString()方法被調(diào)用了,事實(shí)上,當(dāng)JavaScript需要將一個(gè)對(duì)象轉(zhuǎn)換成字符
時(shí)就隱式調(diào)用了這個(gè)對(duì)象的toString()方法.
例如:
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var da = new Date(new Date()) ;
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var dt = new Date() + 1 ;
JavaScript中call方法的使用:
關(guān)于call的解釋:
call 方法可以用來代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。
call 方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。
例如:
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world!", show:abc};
var obj2 = { member1:"Hello world again!", show:abc};
obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);
修改后的另一個(gè)版本:
member1 = 'test';
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world", show:abc};
var obj2 = { member1:"Hello world again", show:abc};
obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);
abc(); // 此時(shí)abc中的this指向了當(dāng)前上下文
每個(gè)函數(shù)都有call方法,上面的過程中我們看到用另一個(gè)對(duì)象代替調(diào)用顯示方法,
并注意到this在對(duì)象上下文中的改變。
相關(guān)文章
JavaScript中Array的filter函數(shù)詳解
這篇文章主要介紹了JavaScript中Array的filter函數(shù)詳解,filter?為數(shù)組中的每個(gè)元素調(diào)用一次callback函數(shù),W更多具體內(nèi)容,需要的朋友可以參考一下2022-07-07
javascript記錄文本框內(nèi)文字個(gè)數(shù)檢測文字個(gè)數(shù)變化
要對(duì)文本框中用戶輸入的文字進(jìn)行記數(shù),在下面顯示出來,經(jīng)研究找到個(gè)不錯(cuò)的方法,可以完美解決在刪除文字后,字?jǐn)?shù)變化問題2014-10-10
Javascript 兩個(gè)窗體之間傳值實(shí)現(xiàn)代碼
眾所周知window.open() 函數(shù)可以用來打開一個(gè)新窗口,那么如何在子窗體中向父窗體傳值呢,其實(shí)通過window.opener即可獲取父窗體的引用。2009-09-09
javascript html5移動(dòng)端輕松實(shí)現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了javascript html5移動(dòng)端輕松實(shí)現(xiàn)文件上傳的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
對(duì)象題目的一個(gè)坑 理解Javascript對(duì)象
這篇文章主要介紹了Javascript對(duì)象,特別為大家分享了對(duì)象題目的一個(gè)坑,提供了解題思路,感興趣的小伙伴們可以參考一下2015-12-12

