【发布时间】:2012-11-02 20:08:37
【问题描述】:
我正在尝试在同一个类的另一个方法中访问我的类的“render”方法。 但是报错了
"Uncaught TypeError: Object [object Window] has no method 'render'"
这是我的代码:
function myObject(options) {
this.top_offset = 100;
this.right_offset = 50;
};
myObject.prototype.render = function() {
alert ("render");
};
myObject.prototype.getContent = function(data, params) {
// do something with the data
alert('done');
// !not working here!
this.render();
}
知道我做错了什么吗? 谢谢!
编辑
下面的例子是有效的,与我的真实代码的区别在于我在异步调用(get)之前实例化对象,并且我的对象的方法用作回调函数。
// using the object
var o = new myObject('plop');
$.getJSON(url, toSend, function(data) {
}).success(function(e) {
myObject.getContent(e)
};
【问题讨论】:
-
您在实例化
myObject时没有使用new运算符,并且this指向的是窗口对象而不是myObject对象。 jsfiddle.net/vkKJg -
@jbabey:如果这是问题所在,那么
getContent是如何运行的? -
您需要向我们展示完整的代码,包括您如何实例化对象以及如何调用
getContent() -
@Zecc 我在异步调用(get)之前实例化对象,函数getContent用作我的get的回调
标签: javascript oop object