Js中對象初認識

對象
1.對象初識
JavaScript的對象是一組由鍵-值組成的無序集合,例如:
var person = {
     name: 'zhangsan',
     age: 20,
     tags: ['js', 'web', 'mobile'],
     city: 'Beijing',
hit:null
};
JavaScript對象的鍵都是字符串類型,值可以是任意數據類型。
其屬性可以包含基本值,對象或函數。對象其實就是一組沒有順序的值,我們可以想象將Js中對象想象成鍵值對,其中值可以是數據和函數。
對象的行爲和特徵
特徵——屬性
行爲——方法
2.如果一個變量屬於對象所有,那麼該變量就可以稱之爲該對象的一個屬性,屬性一般是名詞,用來描述事物特徵;
如果一個函數屬於對象所有,那麼該函數就可以稱之爲該對象的一個方法,方法是動詞,描述事物的行爲和功能

3.new關鍵字:
構造函數,是一種特殊的函數,主要用來創建對象時初始化對象,即爲對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中。
1)構造函數用於創建一類對象,首字母要大寫;
2)構造函數要與new一起使用纔有意義。
new在執行時會做四件事情
a.new會在內存中做創建一個新的空對象
b.會讓this指向這個新的對象
c.執行構造函數 目的:爲了給這個對象新屬性加屬性和方法
d.new會返回這個對象
自定義構造函數
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','Beijing');
new創造新的空對象p1張三的空間,調用執行function構造函數給p1對象添加加屬性和方法;
4.this關鍵詞
js中this的指向問題,有時候會讓人難以捉摸,函數內部的this有幾個特點:
1)函數在定義的時候this是不確定的,只有調用的時候才能確定;
2)一般函數直接執行,內部this指向全局window;
3)函數作爲一個對象的方法,被該對象所調用,那麼this指向的是該對象;
4)構造函數中的this其實是一個隱式對象,類似一個初始化的模型,所有方法和屬性都掛載到了這個隱式對象身上,後續通過new關鍵字來調用,從而實現實例化。

遍歷對象:
for(var key in obj){
console.log(obj[key]);
}
打印出來第一個obj[i]是
(對象的下標)
打印出來的第一個obj是遍歷過i的對象
for(var key in obj){
console.log(key+"=="+obj[key])
}印出的結果是:
key是下標0,1,2,3,4,5,6...
obj[key]是遍歷對應的下標對象的值
如果打印的是obj.key,因爲.key是找對象的屬性,該對象沒有key屬性所以是undefined;
取消對象屬性,如果給對象定義key屬性並賦值,想要取消key屬性
delete obj.key;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章