厳密モードを使用すると、次のコードは機能しません。this.bar = 'foobar'; で失敗します。ライン。これはなぜですか?厳密モードでオブジェクト プロパティを作成するにはどうすればよいですか?
<html>
<body>
<script>
"use strict";
var foo = (function () {
this.bar = 'foobar';
return this;
}());
alert(foo.bar);
</script>
</body>
</html>
編集: 問題を指摘してくれた James Allardice に感謝します。自己実行関数がオブジェクトを作成していると誤って考えていましたが、そうではありません。代わりに、次のいずれかを行う必要がありました。
"use strict";
var foo = new function () {
this.bar = 'foobar';
};
alert(foo.bar);
または(これはJSLintの方が好きです)
"use strict";
var foo = (function () {
var obj = {};
obj.bar = 'foobar';
return obj;
}());
alert(foo.bar);