有前輩說過,在JavaScript中,一切皆對象。由此可見,作為JavaScript的核心之一,對象是有多麼重要。雖然今天走親戚有點累,但還是得寫寫這個對象,免得吃幾天好的,就又忘光了。 1.創建對象 通過內置對象創建: var obj1 = new Object(); typeof obj1; /
有前輩說過,在JavaScript中,一切皆對象。由此可見,作為JavaScript的核心之一,對象是有多麼重要。雖然今天走親戚有點累,但還是得寫寫這個對象,免得吃幾天好的,就又忘光了。
1.創建對象
通過內置對象創建:
var obj1 = new Object(); typeof obj1; // object var obj2 = new Array(); typeof obj2; // object var obj3 = new String(); typeof obj3; // object
通過字面量創建:
var obj = { name: '非魚', age: 22, msg: function() { console.log('我叫' + this.name + ',今年' + this.age + '歲。'); } }; obj.msg(); // 我叫非魚,今年22歲。
通過函數創建:
對於剛接觸JavaScript的朋友來講,前面兩種方法可能非常熟悉了,但是對於這第三種可能有些陌生。我一直覺得對於一個問題,我們要知其然,也要知其所以然,所以雖然我也沒怎麼用過,但是還是去查了一下原因。
其實原因很簡單,通過函數來創建對象,就是為了復用,以及減少代碼的大量重覆,還是舉個例子。
我們需要創建小明和小紅兩個對象,如果使用字面量方式創建,會是下麵這樣:
var xiaoming = { name: '小明', age: 22, hello: function() { console.log('大家好,我叫:' + this.name); } }; xiaoming.hello(); var xiaohong= { name: '小紅', age: 20, hello: function() { console.log('大家好,我叫:' + this.name); } }; xiaohong.hello();
從上面就能看出來,兩個對象除了值不一樣外,其餘都一樣,所以我們為了避免重覆,就需要用到通過函數的方式。還是接著上面的小明小紅:
function Person(name,age){ this.name = name; this.age = age; this.hello = function() { console.log('大家好,我叫:' + this.name); } } var xiaoming = new Person('小明',22); xiaoming.hello(); var xiaohong = new Person('小紅',20); xiaohong.hello();
這隻是一個小慄子,對於越複雜的問題,效果越是明顯。
通過函數來創建對象,有幾種模式,其中涉及到原型,所以就乾脆放到後面講。
2.訪問對象屬性
var person = { name: '張三', age: 26, gender: '男', }; person.name; // 通過點表示法訪問 var name2 = 'name'; person[name2] = '李四'; // 方括弧方式訪問,優點是可以通過變數訪問