this
キーワードはオブジェクトの機能内で動作しますが、this
のない他の関数を参照していません。これらの関数をオブジェクトの前に置くと、両方の方法が機能します。どうしてこんなことに?オブジェクトと戻りオブジェクトの相違点
var Obj = {
func1: function() {
console.log(this.func2()); // works
console.log(func2()); // doesn't work
},
func2: function() {
return 5;
}
};
Obj.func1();
しかし、生命維持に同じことをやって:
var Obj = (function() {
function func1() {
console.log(this.func2()); // works
console.log(func2()); // works
}
function func2() {
return 5;
}
return {
func1: func1,
func2: func2
};
})();
Obj.func1();
これは正しくありません。受け入れられた答えを見る – RLaaa