在类作用域javascript之外触发事件
我有一门课:在类作用域javascript之外触发事件,javascript,node.js,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( callba
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');
}
我希望能够从类的外部启动onDismiss函数psTesting.onDismiss()
我一直在尝试玩。打电话。申请。绑定东西,运气不好
谢谢,
PA在内部保存对要返回的对象的引用,以便可以使用它访问添加到该对象的
.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');
}
您正在尝试调用
psTesting.onDismiss()
?或者您正在尝试调用内部dimis()
函数psTesting.onDismiss()
可以直接调用。内部dislose()
没有外部访问权限,因此无法调用它。要从外部调用它,您必须提供对它的公共访问,可能类似于您定义的pVariable
。而不是类pTesting
只是一个对象,其方法为pVariable
,内部为Disclease
函数,此
指的是函数notpTesting
。因此,this.onDismiss
始终是未定义的。返回一个可以接受回调函数的onDismiss
方法,以便您可以将其存储在pTesting
范围内,并在需要时运行它。不清楚您试图做什么或请求帮助。请澄清。我想完成的是,无论何时在psTesting内部调用Dismise,都要在对象外部调用onDismiss