對象

		/*
		 * js的對象是一種無序集合數據類型,由一種鍵值對組成,用來
		 * 描述現實世界中的某個對象
		 * 用{}表示一個對象,用鍵值對的形式去聲明,用逗號隔開,最後一個鍵值對後面不需要加逗號
		 */
		
		//創建方式
		//1,json方法原生格式(對象直接量)
		var obj = {name:"如花",agr:18,sex:"男",height:180,location:"香港"};
		console.log(typeof obj,obj);
		
		//2.通過構造方法
		var obj01 = new Object();
		obj01["name"] = "秋香";
		obj01["age"] = "22";
		obj01["sex"] = "女";
		obj01.height = 170;
		obj01.Location = "古代";
		console.log(obj01);
		
		//3.通過構造函數添加
		function fun(){
			this.name = "嫉";//在構造函數中,this指向構造函數的實例
			this.sex = "女";
			this.Location = "太美";
		}
		var obj02 = new fun();
		console.log(typeof obj02,obj02);
		
		var obj03 = {//對象的屬性名都是字符串,屬性值可以是任意的數據類型
			name:"car",
			color:["pink","green","red","white","black"],
			barnd:"五菱宏光",
			productor:"中國",
			time:"2014",
			price:"9999999999",
			desigener:"藍海"
		}
		//訪問屬性(查)
		console.log("name:"+obj03.name+",color:"+obj03.color[0]);//通過變量名"."屬性名去訪問屬性值
		console.log("name:"+obj03["name"]+",color:"+obj03["color"][4]);//通過變量名["屬性名"]去訪問屬性值
		console.log("others:"+obj03["others"]);//如果訪問不存在的屬性,不會報錯,返回undefined
		console.log(obj03.length);//undefined 對象是無法獲取長度的
		for(var i in obj03){//遍歷對象使用for/in
			//i是屬性名
			console.log(i+":"+obj03[i]);
		}
		
		//添加屬性(增)
		obj03.others="其他描述";//通過"."操作符添加
		obj03["color"][5]="orange";//通過["屬性名"]添加
		console.log(obj03);
		
		//修改屬性(改)
		obj03["brand"]="AE86";
		obj03.price = 66666;
		console.log(obj03);
		
		//刪除屬性(刪)
		delete obj03.productor;//使用delete只能刪除自身屬性,不能刪除繼承屬性
		delete obj03["color"][1];//delete刪掉數組中的某個元素之後,使用undefined補齊
		console.log(obj03);
		
		//檢測某一個變量是否包含某一個屬性(in , hasOwnProperty() , propertyIsEnumerable())
		console.log("productor" in obj03);//false
		//in 的左側是屬性名,右側是變量名(對象),不管是自身屬性還是繼承屬性,只要是對象的屬性就返回true
		
		/*
		 * 自身屬性和繼承屬性:
		 * 自身屬性也叫本地屬性,是自定義的鍵值對
		 * 繼承屬性是_proto_裏面的方法
		 * 可枚舉性:
		 * js數據類型中自帶的原形(_proto_)屬性不可枚舉
		 */
		
		//hasOwnProperty()用來檢測給定的屬性名是否是對象的自身屬性,是返回true,對於繼承屬性,返回false
		console.log(obj03.hasOwnProperty("name"));//true
		
		//propertyIsEnumerable() 只有檢測到自身屬性並且這個屬性的可舉行爲true時,它才返回true
		console.log(obj03.propertyIsEnumerable("colr"));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章