Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我得到了一个“答案”;“未定义”;消息_Javascript_Javascript Framework - Fatal编程技术网

Javascript 为什么我得到了一个“答案”;“未定义”;消息

Javascript 为什么我得到了一个“答案”;“未定义”;消息,javascript,javascript-framework,Javascript,Javascript Framework,我在js文件中定义了一个对象: myobj.js MyObj={ test: { startTest: function(){ var x = SOME_PROCESS_A; var y = SOME_PROCESS_B; return {x: x, y: y}; } } } var mytest = MyObj.test.startTest var a = mytest.x; var b = mytest.y;

我在js文件中定义了一个对象:

myobj.js

MyObj={
  test: {
     startTest: function(){
         var x = SOME_PROCESS_A;
         var y = SOME_PROCESS_B;
         return {x: x, y: y};
     }
  }
}
var mytest = MyObj.test.startTest
var a = mytest.x;
var b = mytest.y;
在另一个js文件中,我将此对象函数称为:

var mytest = MyObj.test.startTest()
other.js

MyObj={
  test: {
     startTest: function(){
         var x = SOME_PROCESS_A;
         var y = SOME_PROCESS_B;
         return {x: x, y: y};
     }
  }
}
var mytest = MyObj.test.startTest
var a = mytest.x;
var b = mytest.y;
my index.html:

<body>
 <script src="myobj.js"></script>
 <script src="other.js"></script>
</body>

我在other.js中从firebug那里得到了错误,“
mytest
”在“
var a=mytest.x;
”行中是未定义的


谢谢大家。我在类似代码中遇到另一个“未定义”问题,请检查您是否忘记调用该函数:

var mytest = MyObj.test.startTest()

您忘记调用函数:

var mytest = MyObj.test.startTest()

因为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};
     }
  }
}

因为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};
     }
  }
}

我想你是有意的

var mytest = MyObj.test.startTest(); //calls the function and returns the value to mytest
而不是

var mytest = MyObj.test.startTest;//assigns the function to mytest

我想你是有意的

var mytest = MyObj.test.startTest(); //calls the function and returns the value to mytest
而不是

var mytest = MyObj.test.startTest;//assigns the function to mytest

您应该像函数一样使用它:var mytest=MyObj.test.startTest()您应该像函数一样使用它:var mytest=MyObj.test.startTest()“因为mytest是一个函数对象,它没有属性”函数确实有属性,您甚至可以添加自己的属性。但是,在本例中,这个特定函数没有
x
y
属性。是的,我指的是这个特定函数。我会更正我的答案,谢谢;)谢谢,但我还有一个未定义的错误,这里是:“因为mytest是一个函数对象,它没有属性”函数确实有属性,您甚至可以添加自己的属性。但是,在本例中,这个特定函数没有
x
y
属性。是的,我指的是这个特定函数。我会更正我的答案,谢谢;)谢谢,但我还有一个未定义的错误,这里是:谢谢。但我还有一个未定义的错误,这里是@Mellon,你不应该发布新问题。它可能会作为副本关闭。更新此问题谢谢。但我还有一个未定义的错误,这里是@Mellon,你不应该发布新问题。它可能会作为副本关闭。更新此问题