JS對象中屬性的增刪改查


對象屬於一種復合的數據類型,在對象中可以保存多個不同數據類型的屬性

對象的分類:
          1.內建對象
                -在ES標准中定義的對象,在任何的ES的實現中都可以使用
                -比如:Math String Number Boolean Function Object...
            2.宿主對象
                -由js的運行環境提供的對象,目前來講主要指由瀏覽器提供的對象
                -比如BOM DOM
            3.自定義對象
                -由開發人員自己創建的對象

創建對象:
方法一:

使用new關鍵字調用的函數,是構造函數constructor(構造函數是專門用來創建對象的函數)

使用typeof檢查一個對象時,會返回object

var obj = new Object();
		
console.log(typeof obj);//object
方法二: 使用對象字面量來創建一個對象

使用對象字面量,可以在創建對象時,直接指定對象中的屬性
            語法:{屬性名:屬性值,屬性名:屬性值....}
                對象字面量的屬性名可以加引號也可以不加,建議不加,
                如果要使用一些特殊的名字,則必須加引號
            
                屬性名和屬性值是一組一組的名值對結構,
                    名與值之間使用:連接,多個名值對之間使用逗號隔開
                    如果一個屬性之后沒有其他的屬性了,就不要寫逗號

          var  obj2 = {
				name:"豬八戒",
				age:23,
				gender:"男"
				test:{name:"沙和尚"}
					};
	console.log(obj2);
方法三:使用工廠方法創建對象 ,通過該方法可以大批量的創建對象 

function creatPerson(name,age,gender){
		//創建一個新的對象
		var obj = new Object();
		
		//向對象中添加屬性
		obj.name = name;
		obj.age = age;
		obj.gender = gender;
		obj.sayName = function(){
			alert(this.name);
		}
		//將新的對象返回
		return obj;
	}
	var obj2 = creatPerson("豬八戒",28,"男");
	obj2.sayName()
向對象中添加屬性:
在對象中保存的值稱為屬性
        向對象中添加屬性
        語法:
                對象.屬性名 = 屬性值;

        //向object中添加一個屬性值
	obj.name = "zy";
	//向obj中添加gender屬性
	obj.gender = "男";
	//向obj中添加age屬性
	obj.age = 18;
 對象的屬性名不強制要求遵守標識符的規范,什么亂七八糟的名字都可以使用,但是我們使用時還是盡量按照標識符的規范去做。

如果使用特殊的屬性名,不能使用對象.屬性名的方式來操作

需要使用另一種方式
                    語法:對象["屬性名"] = 屬性值

使用[ ]這種形式去操作屬性,更加的靈活
        在[ ]中可以直接傳遞一個變量,這樣變量值是多少就會讀取那個屬性

        obj["123"] = 789;
	obj["nihao"] = "nihao";
	
	var n = "123";
	console.log(obj[n]);//789  因為n的值為"123",而obj對象"123"的屬性值為789
JS中的屬性值可以是任意的數據類型,甚至它也可以是一個對象

 

讀取對象中的屬性
語法:對象.屬性名

如果讀取對象中沒有的屬性,不會報錯而是返回undefined

in 運算符
            -通過該運算符可以檢查一個對象是否含有指定的屬性
                    如果有則返回true,沒有則返回false
            -語法:
                "屬性名" in 對象

		//檢查obj中是否含有test2屬性
		console.log("test2" in obj);//false
		console.log("test" in obj);//true
修改對象的屬性值
語法:對象.屬性名 = 新值

obj.age = 22;
刪除對象的屬性
語法:delete 對象.屬性名

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM