javascript的二象性

來源:互聯網
上載者:User

var anObject = {}; //一個對象<br /> anObject.aProperty = "Property of object"; //對象的一個屬性<br /> anObject.aMethod = function(){alert("Method of object")}; //對象的一個方法<br /> //主要看下面:<br /> alert(anObject["aProperty"]); //可以將對象當數組以屬性名稱作為下標來訪問屬性<br /> anObject["aMethod"](); //可以將對象當數組以方法名作為下標來調用方法<br /> for( var s in anObject) //遍曆對象的所有屬性和方法進行迭代化處理<br /> alert(s + " is a " + typeof(anObject[s]));<br />

同樣對於function類型的對象也是一樣:
var aFunction = function() {}; //一個函數<br /> aFunction.aProperty = "Property of function"; //函數的一個屬性<br /> aFunction.aMethod = function(){alert("Method of function")}; //函數的一個方法<br /> //主要看下面:<br /> alert(aFunction["aProperty"]); //可以將函數當數組以屬性名稱作為下標來訪問屬性<br /> aFunction["aMethod"](); //可以將函數當數組以方法名作為下標來調用方法<br /> for( var s in aFunction) //遍曆函數的所有屬性和方法進行迭代化處理<br /> alert(s + " is a " + typeof(aFunction[s]));<br />

是的,對象和函數可以象數組一樣,用屬性名稱或方法名作為下標來訪問並處理。那麼,它到底應該算是數組呢,還是算對象?

    我們知道,數組應該算是線性資料結構,線性資料結構一般有一定的規律,適合進行統一的批量迭代操作等,有點像波。而對象是離散資料結構,適合描述分散的和個人化的東西,有點像粒子。因此,我們也可以這樣問:JavaScript裡的對象到底是波還是粒子?

    如果存在對象量子論,那麼答案一定是:波粒二象性!

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。