js的学习时要经常自己试验,以使自己经验更准确。下面是我经过试验得到的对象中的变量访问的理解。欢迎指教。
由于对象是无序属性集,因此当初始化对象时用一个对象给另一个对象赋值会出现未定义的结果。
var obj={
a:1,
b:a //undefined
}
var a=2;
var a=2;
var obj={
a:1,
b:a //2
}
var obj={
a:1,
b:a //error
}
var a=2;
var obj={
a:1,
b:this.a //undefined
}
但函数可以相互调用。
var a=2;
var obj={
a:1,
b:function(){
console.info(this.a);
},
c:function(){
this.b();
}
}
obj.b();
要给对象中的属性赋以另一个属性的值时,可以用函数属性进行操作:
var a=2;
var obj={
a:1,
b:undefined,
c:function(){
this.b=this.a;
}
}
obj.c();
console.info(obj.b);
【说明函数存储时是作为字符串存储的,只有调用时才开始走流程,即预编译,准备执行环境等等】 |
|