Javascript events 变量";“未定义”;错误,为什么

Javascript events 变量";“未定义”;错误,为什么,javascript-events,javascript,Javascript Events,Javascript,我在js文件中定义了一个对象: myobj.js MyObj={ test: { value: {a: 10, b: 7}, startTest: function(){ var x = this.value.a; var y = this.value.b; return {x: x, y: y}; } } } mytest = MyObj.test.startTest //assign starT

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

myobj.js

MyObj={

  test: {
     value: {a: 10, b: 7},

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

other.js

MyObj={

  test: {
     value: {a: 10, b: 7},

     startTest: function(){
         var x = this.value.a;
         var y = this.value.b;
         return {x: x, y: y};
     }
  }
}
mytest = MyObj.test.startTest //assign starTest function to mytest
var a = mytest().x;
var b = mytest().y;
my index.html:

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

我在myobj.js中从firebug那里得到了错误:

此.value
”未在中定义 行“
此.value.a;


为什么

这提供了一个没有上下文的函数。如果直接调用此函数,则
窗口

您希望所有的
test.startTest()
这样
这个
就是
test


mytest=MyObj.test.startTest

这提供了一个没有上下文的函数。如果直接调用此函数,则
窗口

您希望所有的
test.startTest()
这样
这个
就是
test


可能重复“否”,这与我之前的帖子不同。这是我个人的偏好:我不喜欢你声明MyObj的方式。我更喜欢“函数MyObj(){[…]}”。startTest内部函数也一样:我更喜欢“this.startTest=function(){[…]}”。这些是更“标准”的方式。请参考这个StackOverflow问题,并给出一个非常好的答案:不要创建新问题。相反,用所有信息更新原始问题。我的意思是,很明显,你在那里发布的代码不完整,否则你不会再收到另一个错误…可能是重复的否,它不同于我以前的帖子这是个人偏好:我不喜欢你声明MyObj的方式。我更喜欢“函数MyObj(){[…]}”。startTest内部函数也一样:我更喜欢“this.startTest=function(){[…]}”。这些是更“标准”的方式。请参考这个StackOverflow问题,并给出一个非常好的答案:不要创建新问题。相反,用所有信息更新原始问题。我的意思是,很明显你在那里发布的代码不完整,否则你就不会再有错误了。。。