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
*/
热点内容