Ich habe versucht, unten eine sehr einfache IIFE zu machen,
var obj = new Object;
(function(_obj) {_obj.prop = 'definiert';})(obj);
if(typeof obj.prop === undefined)
alert('undefined');
else
alert(obj.prop);
Warum gibt das Skript "undefined" aus, anstatt "definiert" als Ergebnis?
@EDIT
Das Skript hätte wie erwartet funktionieren sollen, außer:
- Das unbeabsichtigte
typeof obj.prop === undefined
ist falsch, aber stattdessen sollteobj.prop === undefined
verwendet werden. -
Wenn unten Klammern weggelassen werden, funktioniert das Skript nicht wie erwartet, es wird jedoch kein Syntaxfehler von Rhino gemeldet.
function(_obj) {_obj.prop = 'definiert';}(obj);