如何在JavaScript中调用另一个对象的函数?

时间:2013-12-18 10:12:59

标签: javascript

我在JavaScript文件index.js中有2个对象。

var obj1 = {
    function1: function() {
        // do something
        obj2.function2();
    }
};

var obj2 = {
    function2: function() {
        // do something
    }
};

我从html文件中调用function1(),就像这样。

<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
    obj1.function1();
</script>

问题是obj2上的function2没有被调用 为什么不调用function2?当我做obj2时,eclipse中的内容辅助根本没有显示该函数。(ctrl space)。 语法不正确吗?

3 个答案:

答案 0 :(得分:0)

没有被调用,因为function1没有被调用。

obj1.function1()添加到代码的末尾,然后就可以了。

您还应该添加一些代码,以便为function2提供可见效果,以便您可以判断它何时被调用。

demo

答案 1 :(得分:0)

如果你调用obj1.function();在声明obj2之前,它应该抛出一个Error,因为你不能从一个未定义的Object调用一个方法。我认为没有其他原因导致它不起作用......

答案 2 :(得分:-1)

您可以使用相同的代码,但只需在声明后调用function1

var obj1 = {
   function1: function() {
      // do something
      obj2.function2();
   }
};

var obj2 = {
   function2: function() {
       // do something
       alert("obj2");
   }
};

obj1.function1();

您可以在http://jsfiddle.net/vVKKZ/

中查看

因为当你在那时调用function1时没有声明obj1所以当时它是未定义的。