建立物件的兩種方式
阿新 • • 發佈:2020-08-05
使用物件字面量的方式建立物件
var obj = {
name: '劉德華',
age: 18,
sayHi: function () {
console.log('hi');
}
};
// 使用物件
console.log(obj.name);
console.log(obj['age']); //注意,這裡不能忘記掉引號。
obj.sayHi();
//屬性採取的是屬性名:屬性值
//多組屬性和方法中間採用的是逗號隔開
//方法後面跟的是函式。
使用 new Object建立物件
var object = new Object();
object.name = '劉德華';
object.age = 19;
object.sex = '男';
object.sayHi = function(){
console.log('忘情水');
}
//建立一個空物件,追加屬性資料的方式。 物件名.屬性名 = 值
//使用方式和上面都一樣。
console.log(object.age);
自定義建構函式
上面兩種方法,都只能一次建立一個物件,所以不太方便,如果我們需要一次建立多個物件的時候,就需要使用構造函數了。
// function 建構函式名(引數1....){ 建構函式名的首字母要大寫
//this.屬性名 = 屬性值;
//this.方法名 = function(){}
// }
// 呼叫建構函式 new 建構函式名()
示例:
function Star(name,age,sex){ this.name = name; this.age = age; this.sex = sex; this.sing = function(){ console.log('唱歌'); } } var ldh = new Star('張學友',22,'女'); //建構函式要通過new來呼叫 console.log(ldh.name); console.log(ldh.age); console.log(ldh.sex);
new 關鍵字執行的過程
- new 建構函式可以產生一個新的空物件
- this 就指向我們建立的這個空物件
- 執行建構函式裡面的程式碼(完成賦值操作)
- 返回這個物件。
this的指向問題
一般情況this指向他的呼叫者。
- this在函式中的指的是 window 。因為window呼叫了這個函式。
- this在物件中的指向是當前這個物件。
- this在建構函式中的指向當前的這個呼叫者。