js基礎_屬性名和屬性值
物件的屬性名
物件的屬性名不強制要求遵守識別符號的規範
什麼亂七八糟的名字都可以用,但是我們使用時還是儘量按照標誌符的規範去做。
如果要使用特殊的屬性名,不能採用.的方式來操作,需要使用另一種方式來操作。
格式:物件[“屬性名”]=屬性值;
obj[“123”]=789;
console.log(obj[“123”]);
讀取時也要採用這種方式
使用[]這種形式去操作屬性,更加的靈活,在[]中可以直接傳遞一個變數,變數存物件的屬性名,這樣變數的值是多少就會去讀取那個屬性。
比如:
obj[“123”]=789;
obj[“nihao”]=”hello”;
var n=”123”;
console.log(obj[n]);//結果為789;
var n=”nihao”;
console.log(obj[n]);//結果為”hello”;
物件的屬性值
JS物件的屬性值可以是任意資料型別,甚至是一個物件
比如:
var obj=new Object();
obj.gender='男';
var obj2=new Object();
obj2.name="豬八戒";
obj.test=obj2;
console.log(obj);結果如下圖
console.log(obj.test);結果如下圖,輸出的就是一個物件
console.log(obj.test.name);//輸出的結果就是單純的一個值:”豬八戒”,而不是一個大括號括起的一個物件。
檢查一個物件中是否含有指定屬性
in 運算子
-通過該運算子可以檢查一個物件中是否含有指定屬性
如果有則返回true,否則返回false。
語法:”屬性名” in 物件
檢查obj中是否有test2屬性
console.log(“test2” in obj);//false;
使用函式作為屬性值
函式也可以作為物件的屬性,如果一個函式作為一個物件的屬性,那麼我們稱這個函式是這個物件的方法,呼叫這個函式就稱呼叫這個物件的方法(method),但是它只是名稱上的區別。
所以,obj.sayname();稱為調方法,
fun();稱為調函式。只有通過(屬性名)點出來的才叫方法,其餘都叫函式。
var obj={ name:"孫悟空", gender:'男', sayname:function(){ console.log(obj.name) }, age:18 } //console.log(obj.sayname); obj.sayname();