【发布时间】:2014-08-11 23:08:04
【问题描述】:
我试图从另一个函数调用对象的函数,但出现“未定义不是函数”错误。我认为有一些愚蠢的错误,但我无法弄清楚。
function dataProvider() {
var self = this;
self.loadData = ko.computed(function(){
var data = new Data(self.getJson().data); //here comes the error
...
});
self.getJson = function(){
if(typeof jsonVar !== 'undefined')
return jsonVar;
else {
...
}
};
}
已定义 jsonVar,它是一个有效的 JSON。数据是一个对象,但 self.getJson() 不起作用。
编辑: 这与调用私有或公共方法无关。问题是我不能调用对象的方法。
【问题讨论】:
-
您确定错误发生在该行代码上吗?
ko.computed呢?这真的定义了吗?无论如何,尝试在关键代码行之前添加一些日志以进行调试,例如console.log(self.getJson);。 -
我真的看不出与“重复”问题的联系。
-
感谢您的回复,是的,它在代码的确切行上。你是对的,“重复”的问题是关于别的事情,我投票支持重新开放,
-
我想我刚刚找到了问题所在。函数 loadData 在 getJson 函数之前初始化,所以我不得不重新排序这些函数以使其工作。谢谢大家的回复。
标签: javascript function object knockout.js