如何在JavaScript中访问对象的值?

时间:2017-12-03 16:59:07

标签: javascript node.js

在o2和o3对象中,我知道我可以使用this.bar访问条形键,但是如何访问foo?

 function foo(){
 console.log(this.bar);
 }

 var bar = "bar1";

 var o2 = {bar:"bar2", foo:foo};
 var o3 = {bar:"bar3", foo:foo};



 foo();
 o2.foo();
 o3.foo();

1 个答案:

答案 0 :(得分:1)

  

但我如何访问foo

this.foo可以在foo函数中使用,也可以只用foo,因为该函数也可以在变量作用域中使用。

因此,如果您执行this.foo(),则会获得bar对象的this属性的值,但如果您执行了foo(),则会得到bar foo变量,如果它在全局范围内。

无论哪种方式,请注意,如果从foo内部调用foo,它将是一个没有转义子句的递归调用,并且您将超出堆栈限制。

  

为什么this.foo不起作用?

如果您在foo函数之外执行此操作,只要在全局范围内定义了foo函数,它就会起作用。如果this.foo()函数位于本地范围内,则{{1}}将无法看到它。