JavaScript OOP调用函数来自其他函数

时间:2009-08-25 09:44:25

标签: javascript oop

function MyClass(projectName) {
  this.projectName = projectName;
}

MyClass.prototype.createHttpRequestObject = function() {
  /* do something */
}

MyClass.prototype.submit = function(message, script, line) {
  httpRequest = this.createHttpRequestObject();
}

错误'this.createHttpRequestObject不是函数'来自'httpRequest = this.createHttpRequestObject();'。为什么?我做错了什么?

2 个答案:

答案 0 :(得分:2)

JavaScript解释'this'的方式与您预期的不同。它不会链接到“原始”对象,而是链接到当前上下文。

请参阅http://www.quirksmode.org/js/this.html以获取解释。

另请参阅:jQuery/JavaScript "this" pointer confusion

答案 1 :(得分:1)

如果你正确地实例化MyClass它应该工作..看看下面的工作代码..

function testCall(){
   var ss = new MyClass("sam");
   ss.submit();
}

function MyClass(projectName) {
  this.projectName = projectName;
}

MyClass.prototype.createHttpRequestObject = function() {
    return "something";
}

MyClass.prototype.submit = function(message, script, line) {
  httpRequest = this.createHttpRequestObject();
}