1)new
関数を定義するときは使用しませんがnew
、新しいオブジェクトを作成する目的で関数を呼び出すときに使用します。
2)new
関数を定義するときに使用すると、すぐに起動することを意味します。これは便利な場合もあります... ...しかし、初心者が学ぶべき方法ではありません。また、この手法のより受け入れられているバージョンは IIFE (Immediately Invoked Function Expression) と呼ばれ、次のようになります。
(function () {
/* function stuff in here */
}());
それ以外の
new function () { /* function stuff in here */ }
そのように関数を定義しようとすると、後でそれを使用しようとするとエラーが発生します (定義されていないため)。
関数を実際に定義する 2 つの方法を次に示します。
var sayHi = function () { console.log("Hi!"); };
と
function sayHello () { console.log("Hello"); }
これらはどちらも使用しませんnew
。
それらを呼び出して仕事をさせるために、 を使用する必要はありません.call()
。
.call()
動作しますが、非常に長い間必要としない特別な目的があります。
あなたがする必要があるのはこれだけです:
sayHello();
sayHi();
New は、特定の種類のオブジェクトを作成する場合に使用することを目的としています。
JavaScript でオブジェクトを作成するのは非常に簡単です。
var obj = {};
var person = { name : "Bob" };
person.name; // "Bob"
person.age = 32;
オブジェクトの操作は非常に簡単です。
classes
しかし、他のプログラミング言語では、オブジェクトの設計図のようなものが必要です。
JS では、次のようなクラスを作成できます。
function Person (name, age) { this.name = name; this.age = age; }
そしてそれを次のように使用します:
var bob = new Person("Bob", 32);
bob.name; // "Bob";
bob.age; // 32;
?をどこに置いたnew
か見てください。
人を作る機能を使って、 になりたいと言いbob
ましたnew Person
。
しかし、JS では、これは次のように簡単に行うことができます。
var mike = { name : "Mike", age : 20 };
関数を構築する必要も、使用する必要もありませんでしたnew
。うまくいきました。