node.js - 将函数传递给其他原型(prototype)

标签 node.js javascript-framework javascript

我有以下代码

http://jsfiddle.net/qhoc/SashU/1/

var Callback = function(op) {
    this.callback = op.callback;
}

var Test = function (op) {
  for (var option in op) {
    if (!this[option]) this[option] = op[option];
  }

}

Test.prototype.init = function(bb) {
    console.log('aa = ' + this.aa);
    console.log('bb = ' + bb);

    if (bb < 3) {
        this.init(bb + 1);
    } else {
        this.callback;
    }
}

var finalCallback = function() {
    console.log('this is finalCallback');
}

var myCallback = new Callback({
    callback: finalCallback
});

var myTest = new Test({
    aa: 1,
    callback: myCallback
});

myTest.init(1);

第 19 行根本没有打印 'this is FinalCallback' 因为 this.callback; 已执行但没有指向到一个函数。但以下有效:

myTest.init(1);
myCallback.callback();

我猜当将myCallback传递给myTest时,它没有传递finalCallback??

有人可以帮忙解释一下这种行为以及如何解决它吗?

最佳答案

似乎你想这样做(使用 op.callback 作为函数):

var Callback = function (op) {
    this.callback = op.callback;
    return this.callback;
};

并且函数应该使用()调用

 } else {
        this.callback();
  }

http://jsfiddle.net/oceog/SashU/3/

this is example where it can be used

关于node.js - 将函数传递给其他原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15150601/

相关文章:

node.js - 如何使用 sequelize 获得行的不同值?

mysql - Knex SQL 查询不返回任何内容,MySQL Workbench 返回正确的数据

javascript - 未捕获的类型错误 : Object [object Object] has no method 'jcarousel' in Javascript

javascript - 更改新 Javascript 框架中的语法

javascript - Meteor Template.myTemplate.rendered 在 Accounts.createUser 函数后未触发

javascript - Android - 文本输入未使用自定义验证插件进行验证

sql - 使用 Sequelize 连接到本地 SQL Server

node.js - ExpressJS - 从中​​间件发送响应

javascript - Meteor js Windows 安装报错 "Failed to contact install server"

javascript - Javascript OOP 中的未知未定义