2011-04-18 98 views
1

我有一个函数对象:如何在我的对象中访问这个函数?

var myObj=function(){ 

}; 

myObj.prototype = { 
    availableColor: function(i){ 

     return "red_"+i; 

    } 

    getColor: function(){ 
    var c = availableColor('3'); //Error: availableColor is not a function 
    ... 
    } 

}

当我打电话availableColor(i)getColor()功能,我得到了错误availableColor不是一个函数 ....

我也试着使用var c = this.availableColor('3');

var self=this在构造函数中,然后var c = self.availableColor('3');

但是,这些都没有帮助。是什么原因?

回答

1
var myObj={ 
    availableColor: function(i){ 

     return "red_"+i; 

    }, 
    getColor: function(){ 
    var c = this.availableColor('3'); 
    } 
} 

编辑

另一种方法:

var myObj=function(){ 

}; 

myObj.prototype.availableColor = function(i){ 
     return "red_"+i; 
    }; 
myObj.prototype.getColor = function(){ 
    var c = this.availableColor('3'); 
return c; 
}; 

b = new myObj(); 
document.write(b.getColor()); 
+0

如果我坚持使用函数而不是对象,是否有任何解决方法? – Mellon 2011-04-18 11:58:47

+0

我仍然收到错误“availableColor不是函数” – Mellon 2011-04-18 12:10:57

+0

@Mellon看起来像在第一个方法定义后忘记了逗号。 – vooD 2011-04-18 12:22:07

0

如果你只是想添加方法MyObj中,只是做:

myObj.availableColor = function(i){ 
    return "red_"+i; 
} 

myObj.getColor = function(){ 
    var c = this.availableColor('3'); 
} 

使用prototype会的方式使myObj构造函数:var o = new myObj()myObj不会有这些方法。

+0

嗨,事情是我想使myObj构造。当我使用myObj作为构造函数时,我想摆脱这个问题。 – Mellon 2011-04-18 12:27:49

相关问题