关于对象之间属性调用的问题?

var a = {method:b.method,name:'zhangsan'};
var b = {method:'car',name:a.name};

这样写会报错而且,怎么让两个对象之间能互相拿到值。
但是如果写成函数的形式就能拿到值,奇怪了

var a = {method:function(){
      console.log(b.method);
    },name:'zhangsan'}
var b = {method:'car',name:a.name};
a.method();//能打印出'car'
阅读 2.5k
4 个回答

我就问你一句,先有鸡还是先有蛋!

建议看你看看词法分析。
你第一个b都还没赋值就想拿method肯定没有啊。
你第二是function是作为method的属性值保存的,那时候还没执行,等你下面执行时候,b已经赋值了。所以行啊。

可以了解下js作用域相关的知识

var a = {name:'zhangsan'};
var b = {method:'car',name:a.name};
a.method = b.method

这样试试,如果method的值是对象的话 改一个另一个也会变,简单数据类型不会

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏