带有回调的 Javascript 函数,该回调将启动的对象作为参数传递

标签 javascript function callback

我正在尝试扩展一些现有功能,使其具有一个回调函数,该函数将原始对象作为参数传递,或者至少传递存储在较小对象中的任何公共(public)变量,我该如何实现这一点?

这是我正在使用的文件的简化版本,一个类将包含在变量中

<html>
<head>
</head>
<script>

var foo = new Foo ({
    arg1:1,
    onComplete: function(){
        alert("complete " + total);
    }
});

</script>
<body>
</body>
</html>

函数/类看起来与此类似

function Foo(options) {
    // private
    var number1_ = options.arg1;
    var number2_ = 10;
    var total_ = number1_ + number2_;

    // public
    this.total = total_;

    (function Foo() {
        if (options) {
            if (options.onComplete && typeof (options.onComplete) === "function") {

                // how do I pass Foo or an object of selected variables here?
                options.onComplete();
            }
        }
    })();
}

谢谢

最佳答案

看看这个:)

function Foo(options) {
    // private
    var number1_ = options.arg1,
        number2_ = 10,
        total_ = number1_ + number2_;
    // public
    this.total = total_;

    (function Magazine( that ) {

        (options.onComplete || function(){}).call( that );

    })(this);
}

var foo = new Foo({
    arg1: 1,
    onComplete: function() {

        alert("complete " + this.total);
    }
});

现场演示: http://jsfiddle.net/P3bzM/

关于带有回调的 Javascript 函数,该回调将启动的对象作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656363/

相关文章:

javascript - chrome 和 opera 的区别

java - 是否有一种独立于语言的方法可以将函数添加到 JSR223 脚本绑定(bind)?

c++ - 为什么回调标志在没有明显原因的情况下被清除和/或损坏?

python - 为什么我的按钮的命令在我创建按钮时立即执行,而不是在我单击它时执行?

javascript - 转换属性 jquery

javascript - 将 CSS 添加到 EJS

java - 加速谷歌闭包编译器 jar

python - 我已经定义了一个函数并想将它的输出写入一个 txt 文件,我需要在我的代码中更改什么?

function - 关于一个函数如何在 clojurescript 中生成另一个函数的文档?

c++ - 将函数参数从 EXPECT_CALL 保存到模拟方法