JS / use对象定义函数外部

时间:2013-06-05 13:17:46

标签: javascript

我在JS中有下一个函数:

function status(){
  this.functionA = function(){}
  //Some others function and fields
}

我有另一个功能:

function create(root){
var server = libary(function (port) {
  //Here some functions
});
var returnValue = {
  current:status(),
  cur:function(port){
    current.functionA();
  }}
return returnValue;
}

当我致电current.functionA()时,它表示电流未定义。如何拨打functionA()

2 个答案:

答案 0 :(得分:0)

当您拥有像status()这样的函数构造函数时,您需要为它调用new。我在这里修改了部分代码。

var returnValue = {
  current: new status(),
  cur:function(port){
    current.functionA();
  }}
return returnValue;
}

区别对待; create()不需要new语句,因为您实际上是在函数内部创建并返回要引用的对象。

答案 1 :(得分:0)

function status(){
  this.functionA = function(){alert("functionA");}
}
function create(root){ 
    var returnValue = {
        current:status.call(returnValue), 
        cur:function(port){ this.functionA(); }.bind(returnValue)
    } 
    return returnValue; 
}
create().cur(999);

我使用JavaScript“call”和“bind”方法纠正了您的问题,这些方法是函数原型的一部分。