我在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};
}
}
}
在另一个js文件中,我调用了这个对象函数:
other.js
mytest = MyObj.test.startTest //assign starTest function to mytest
var a = mytest().x;
var b = mytest().y;
我的index.html:
<body>
<script src="myobj.js"></script>
<script src="other.js"></script>
</body>
我在 myobj.js 中收到了来自firebug的错误:
“
this.value
”未定义 第“this.value.a;
”行
为什么?
答案 0 :(得分:5)
mytest = MyObj.test.startTest
这为您提供了一个没有上下文的功能。如果您直接调用此函数,则this
为window
。
您想要所有test.startTest()
,以便this
为test