轉(zhuǎn)載: JavaScript
使用面向?qū)ο蟮募夹g(shù)創(chuàng)建高級(jí) Web 應(yīng)用程序
Ray Djajadinata
本文討論:
本文使用了以下技術(shù): JavaScript
原文地址:http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx#S1
目錄: JavaScript 對(duì)象是詞典
JavaScript 對(duì)象是詞典 在 C++ 或 C# 中,在談?wù)搶?duì)象時(shí),是指類或結(jié)構(gòu)的實(shí)例。對(duì)象有不同的屬性和方法,具體取決于將它們實(shí)例化的模板(即類)。而 JavaScript 對(duì)象卻不是這樣。在 JavaScript 中,對(duì)象只是一組名稱/值對(duì),就是說,將 JavaScript 對(duì)象視為包含字符串關(guān)鍵字的詞典。我們可以使用熟悉的“.”(點(diǎn))運(yùn)算符或“[]”運(yùn)算符,來獲得和設(shè)置對(duì)象的屬性,這是在處理詞典時(shí)通常采用的方法。以下代碼段
var userObject = new Objcet(); userObject.lastLoginTime = new Date(); alert(userObject.lastLoginTime); 的功能與下面的代碼功能完全相同:
var userObject = {}; // equivalent to new Object() userObject['lastLoginTime'] = new Date(); alert(userObject['lastLoginTime']); 我們還可以直接在userObject的定義中定義lastLoginTime屬性,如下所示:
var userObject = {'lastLoginTime' : new Date()}; alert(userObject.lastLoginTime);
注意,它與C#3.0對(duì)象初始化值非常相似。而且,熟悉Python的人會(huì)發(fā)現(xiàn)在第二和第三個(gè)代碼段中實(shí)例化 userObject 的方法與在 Python 中指定詞典的方法完全相同。唯一的差異是 JavaScript 對(duì)象/詞典只接受字符串關(guān)鍵字,而不是像 Python 詞典那樣接受可哈希化的對(duì)象。
這些示例還顯示 JavaScript 對(duì)象比 C++ 或 C# 對(duì)象具有更大的可延展性。您不必預(yù)先聲明屬性 lastLoginTime — 如果 userObject 沒有該名稱的屬性,該屬性將被直接添加到 userObject。如果記住 JavaScript 對(duì)象是詞典,您就不會(huì)對(duì)此感到吃驚了,畢竟,我們一直在向詞典添加新關(guān)鍵字(和其各自的值)。
這樣,我們就有了對(duì)象屬性。對(duì)象方法呢?同樣,JavaScript 與 C++/C# 不同。若要理解對(duì)象方法,首先需要仔細(xì)了解一下 JavaScript 函數(shù)。 |
|