對象
對象的行為和特征
特征---屬性
行為---方法
事物的特征在對象中用屬性來表示。
事物的行為在對象中用方法來表示。
對象創建方式
對象字面量
var o = {
name: 'zs',
age: 18,
sex: true,
sayHi: function () {
console.log(this.name);
}
};
new Object()創建對象
var person = new Object();
person.name = 'lisi';
person.age = 35;
person.job = 'actor';
person.sayHi = function(){
console.log('Hello,everyBody');
}
工廠函數創建對象
function createPerson(name, age, job) {
var person = new Object();
person.name = name;
person.age = age;
person.job = job;
person.sayHi = function(){
console.log('Hello,everyBody');
}
return person;
}
var p1 = createPerson('張三', 22, 'actor');
自定義構造函數
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function(){
console.log('Hello,everyBody');
}
}
var p1 = new Person('張三', 22, 'actor');
屬性和方法
1. 如果一個變量屬於一個對象所有,那么該變量就可以稱之為該對象的一個屬性,屬性一般是名詞,用來描述事物的特征
2. 如果一個函數屬於一個對象所有,那么該函數就可以稱之為該對象的一個方法,方法是動詞,描述事物的行為和功能
new關鍵字
構造函數,是一種特殊的函數。主要用來在創建對象時初始化對象,即為對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中。
1.、構造函數用於創建一類對象,首字母要大寫。
2.、構造函數要和new一起使用才有意義。
new在執行時會做四件事情:
1、new會在內存中創建一個新的空對象
2、new會讓this指向這個新的對象
3、new會返回這個新對象
、this詳解
函數內部的this幾個特點:
1. 函數在定義的時候this是不確定的,只有在調用的時候才可以確定
2. 一般函數直接執行,內部this指向全局window
3. 函數作為一個對象的方法,被該對象所調用,那么this指向的是該對象
4. 構造函數中的this其實是一個隱式對象,類似一個初始化的模型,所有方法和屬性都掛載到了這個隱式對象身上,后續通過new關鍵字來調用,從而實現實例化
對象的使用
遍歷對象的屬性
通過for..in語法可以遍歷一個對象
刪除對象的屬性
function fun() {
this.name = 'mm';
}
var obj = new fun();
console.log(obj.name); // mm
delete obj.name;
console.log(obj.name); // undefined
- JavaScript 錯誤