在课程范围javascript之外的射击事件

时间:2017-05-16 14:09:02

标签: javascript node.js

我有一个班级:

var psTesting = (function(){

var privatevariable;

function setVariable(value){
    privatevariable = value;
    console.log('the variable value is ' + value);
}

function dismiss ( callback ) {
    console.log('entro dismiss')
    if( callback ) callback();
    if( this.onDismiss ) this.onDismiss();
}

return  {
    pVariable : function(val) {
        setVariable(val)
    }
}
})();

psTesting.pVariable(22);

psTesting.onDismiss = function(){
console.log('this is a onDismiss test');
}

我希望能够从类psTesting.onDismiss()外部触发onDismiss函数

我一直在尝试使用.call。应用.bind,没有运气。

谢谢, PA

1 个答案:

答案 0 :(得分:1)

将引用内部保存到要返回的对象,以便您可以使用它来访问添加到该对象的.onDismiss()

var psTesting = (function() {

    var privatevariable;

    var obj = {
        pVariable: function(val) {
            setVariable(val)
        }
    }

    function setVariable(value) {
        privatevariable = value;
        console.log('the variable value is ' + value);
    }

    function dismiss(callback) {
        console.log('entro dismiss')
        if (callback) callback();
        if (obj.onDismiss) obj.onDismiss();
    }

    return obj;
})();

psTesting.pVariable(22);

psTesting.onDismiss = function() {
    console.log('this is a onDismiss test');
}