JavaScript只运行最后一个函数

时间:2015-05-15 12:27:10

标签: javascript

我有以下测试代码: 修改

 var getIt = function () {
      return this.x;  
    };

var obj1 = {
  get : getIt,
  x : 11
};

var obj2 = {
  get : getIt,
  x : 12
};

obj1.get();
obj2.get();
obj1.get();

当我运行此代码时,只有last函数返回 11 的值。因此,我没有看到三个值,而只看到最后一个。如果我删除最后一行,我只会看到 12 为什么会这样?

2 个答案:

答案 0 :(得分:3)

我相信您在控制台中运行此代码,或者您根本看不到任何价值。控制台的默认行为是显示最新表达式的结果。

如果要记录所有值,可以使用console.log显式记录单个表达式。

console.log(obj1.get());
console.log(obj2.get());
obj1.get();

请注意,您的代码不会运行,但我认为它确实没有提及任何错误。

答案 1 :(得分:1)

这是因为您在getIt中指定了obj2,因此第一次调用obj1会导致错误。

  

未捕获的ReferenceError:未定义getIt

您应该将getIt移到顶部。



var getIt = function () {
  return this.x;  
};

var obj1 = {
  get : getIt,
  x : 11
};

var obj2 = {
  get : getIt,
  x : 12
};

alert(obj1.get());
alert(obj2.get());
alert(obj1.get());