次の JavaScript 関数があります。
function Console() {
this.Log = function(msg) {
if (document.getElementById("console")) {
var console = document.getElementById("console");
console.innerHTML += msg + "<br/>";
}
}
}
質問 1: なぜ新しいキーワードを使用する必要があるのですか?
new Console().Log("hello world");
なぜこれができなかったのですか?
Console().Log("hello world without using new");
質問2:
var logger = function() {
this.log = function(msg) {
new Console().Log(msg);
new Console().Log("log initialized");
}
this.log2 = function(msg) {
new Console().Log(msg);
new Console().Log("log2 initialized");
}
}(); //notice the brackets
ロガーの末尾に () があるため、これは実行されません。
new logger().log("hello world");
末尾の () は、関数がすぐに呼び出されることを意味しますが、なぜ機能しないのでしょうか? function() {} (); からですか?他の変数に割り当てることはできませんか?