js訪問對象屬性
發布時間: 2023-03-12 04:05:05
1. 在js中用中括弧訪問對象的時候屬性為什麼要加上雙引號
不加雙引號的話,js會認為這是變數名,而這個變數是不存在的,所以報「not defined」(未定義)的錯誤。
而這其實就是用中括弧來訪問對象屬性的意義所在:可以用變數來代替屬性名,比如:
var n = "name1";
console.log(obj[n]); //obj[n]就相當於obj["name1"]或obj.name1
而用點語法的話屬性名是不能用變數的!
2. js中訪問對像的屬性卻返回undefined
訪問對象屬性首先從自身找,然後從原型鏈上找,找到則返回,沒找到返回undefined.
//構造函數
functionFoo(name){
this.name=name;
}
varfoo=newFoo('Tom');//實例對象
console.log(foo.name);//Tom自身找到直接返回
console.log(foo.toString());
/**
*自身沒有toString方法,從隱式原型鏈上找foo.__proto__=Foo.prototype=>Foo.prototype.__proto__=Object.prototype
*/
熱點內容