用于对象创建和函数调用的JavaScript步骤

时间:2013-12-19 17:11:31

标签: javascript

我们有一个简单的脚本片段:

var foo=function(){ return 'a'; };//1
var bar={prop:foo()};//2
alert(bar.prop);//3

在哪一行foo函数代码正在执行? 2点还是3点?如果可能的话,请给我一个规格证明/链接。

解释器发现_some_name()内部方法[[Call]]会被调用吗?

2 个答案:

答案 0 :(得分:4)

考虑以下示例

var foo = function() { return 'a<br />'; };
var bar = { prop: foo() }; // foo is invoked here and 'a' assigned to bar.prop
document.body.innerHTML += bar.prop;


var baz = { prop: foo }; // foo is assigned to baz.prop
document.body.innerHTML += baz.prop(); // foo is invoked here

答案 1 :(得分:2)

第2行。

第1行是定义foo的地方。第2行是调用它的地方。