我在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()
?
答案 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”方法纠正了您的问题,这些方法是函数原型的一部分。