A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sangwentao 中级黑马   /  2016-6-7 20:03  /  1906 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);

【说明函数存储时是作为字符串存储的,只有调用时才开始走流程,即预编译,准备执行环境等等】

1 个回复

倒序浏览
完全看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马