我在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)。 语法不正确吗?
答案 0 :(得分:0)
没有被调用,因为function1
没有被调用。
将obj1.function1()
添加到代码的末尾,然后就可以了。
您还应该添加一些代码,以便为function2
提供可见效果,以便您可以判断它何时被调用。
答案 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所以当时它是未定义的。