我在js文件中定义了一个对象:
myobj.js
MyObj={
test: {
startTest: function(){
var x = SOME_PROCESS_A;
var y = SOME_PROCESS_B;
return {x: x, y: y};
}
}
}
在另一个js文件中,我调用了这个对象函数:
other.js
var mytest = MyObj.test.startTest
var a = mytest.x;
var b = mytest.y;
我的index.html:
<body>
<script src="myobj.js"></script>
<script src="other.js"></script>
</body>
我在 other.js 中遇到了来自firebug的错误,“mytest
”在“var a = mytest.x;
”行中是未定义为什么?
谢谢大家。我在类似的代码中遇到了另一个“未定义”问题,请检查here
答案 0 :(得分:3)
您忘记调用该函数:
var mytest = MyObj.test.startTest()
答案 1 :(得分:1)
因为mytest是一个函数对象,并且没有定义属性。
您可以将其称为
MyObj.test.startTest();
或重写您的对象:
MyObj={
test: {
startTest: function(){
this.x = SOME_PROCESS_A;
this.y = SOME_PROCESS_B;
return {x: this.x, y: this.y};
}
}
}
答案 2 :(得分:1)
我认为你打算这样做
var mytest = MyObj.test.startTest(); //calls the function and returns the value to mytest
而不是
var mytest = MyObj.test.startTest;//assigns the function to mytest