ウィンドウオブジェクトで定義された関数を外部から呼び出そうとしていますが、エラーがスローされます。
window.vcm = (function() {
"use strict";
function red(){
alert('red');
}
});
vcm.red();//Error at this line...
私はJavaScriptでOOPSを初めて使用します。ここでこの関数を呼び出す方法を教えてください。
ウィンドウオブジェクトで定義された関数を外部から呼び出そうとしていますが、エラーがスローされます。
window.vcm = (function() {
"use strict";
function red(){
alert('red');
}
});
vcm.red();//Error at this line...
私はJavaScriptでOOPSを初めて使用します。ここでこの関数を呼び出す方法を教えてください。
値にはプロパティがvcmありません。red
おそらく、代わりにこれを意味します。は、呼び出すことができる関数でvcmあるプロパティを持つオブジェクトです。red
window.vcm = {
red: function(){
"use strict";
alert('red');
}
};
vcmまた、それ自体が関数でありred、関数であるプロパティを持つ可能性もあります (実際には多少ではありませんが) 。
window.vcm = (function() {
"use strict";
var vcm = function() { alert("vcm"); }
vcm.red = function() { alert('vcm.red'); };
return vcm;
})();
vcm(); // "vcm"
vcm.red(); // "vcm.red"
2 つのアプローチがあります。
アプローチ 1 :
window.vcm = {
red: function (){
"use strict";
alert('red');
}
};
vcm.red();
アプローチ 2 :
window.vcm = (function() {
"use strict";
this.red = function(){
alert('red');
}
});
var x = new vcm();
x.red();
red割り当てた関数内にのみ存在しwindow.vcm、関数が実行されたときにのみ存在します。さらに、関数にはプロパティがありませんred。
次の簡単な例を考えてみましょう。
function foo() {
function bar() {}
}
bar(); // will throw an error
は呼び出されたスコープで定義されていないため、呼び出すbarとエラーがスローされます。bar
プロパティを持つ にオブジェクトを割り当てたいようです:window.vcmred
window.vcm = {
red: function (){
"use strict";
alert('red');
}
};
ここでは、オブジェクト リテラルを使用して、プロパティを持つオブジェクトを作成していますred。
詳しくは: