0
Ich habe eine Klasse:Firing Ereignis außerhalb Klassenbereich javascript
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');
}
Ich möchte psTesting.onDismiss()
die onDismiss Funktion von außerhalb der Klasse feuern können
Ich habe mit dem .call spielen versuchen, .anfügen .bind Zeug ohne Glück.
Danke, PA
Versuchen Sie, 'psTesting.onDismiss()' aufzurufen? Oder versuchen Sie die interne 'dimiss()' Funktion aufzurufen? 'psTesting.onDismiss()' kann einfach direkt aufgerufen werden. Das interne 'follow()' hat keinen externen Zugriff, so dass es nicht aufgerufen werden kann. Um es von außen aufzurufen, müssen Sie einen öffentlichen Zugang zu ihm bereitstellen, wahrscheinlich ähnlich wie Sie 'pVariable' definieren. – jfriend00
Keine Klasse. 'pTesting' ist einfach ein Objekt mit einer Methode von' pVariable' und innerhalb von 'follow' Funktion" this "bezieht sich auf die Funktion nicht' pTesting'. Also ist 'this.onDismiss' immer undefiniert. – GillesC
Geben Sie eine 'onDismiss'-Methode zurück, die eine Callback-Funktion annehmen kann, sodass Sie sie innerhalb Ihres' pTesting'-Bereichs speichern und bei Bedarf ausführen können. – GillesC