Ich möchte 'dies' anstelle des Namens des Objekts innerhalb der IIFE verwenden.Verwenden Sie dies innerhalb eines Javascript IIFE innerhalb eines Objekts
var ops = {
start: (function(){
socket.on('set', function(data) {
ops.getData();
});
}()),
getData: function(){
...
}
};
Wie kann es gemacht werden?
warum 'eine IIFE Starten'? Dadurch wird der Code beim Definieren dieses Objekts ausgeführt. 'start' wird auf das gesetzt, was' socket.on' zurückgibt – Damon
@Damon Nein, wird es nicht, da es keine 'return' Anweisung in der Funktion gibt. 'start' wird auf' undefined' gesetzt. – Barmar
@Branzy Das ist neben dem Punkt, warum möchten Sie eine Objekteigenschaft als Nebeneffekt auf undefined setzen? Das Muster hier wäre normalerweise, eine Startfunktion für das Objekt zu definieren und diese Funktion bei Bedarf aufzurufen, andernfalls gibt es keinen Grund, den unmittelbar ausgeführten Codeblock innerhalb des Objekts zu platzieren. – Damon