2 つのプロパティを持つ JavaScript の「クラス」を作成したい場合は、おそらく次のようにします。
var Person = function (firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
};
次に、次のように新しい人物を作成できます。
var p = new Person("John", "Doe");
console.log(p.firstName + " " + p.lastName);
この時点で、すべてが素晴らしいです。ただし、誰かが誤って (または意図的に) 次の呼び出しを行った場合:
Person("Mary", "Smith"); // without "new"
突然、グローバル ウィンドウ コンテキストの一部にfirstName
なりlastName
、ページ全体が台無しになる可能性があります。
console.log(window.firstName); // logs "Mary"
Person
「クラス」を構築するときに、これを防ぐ良い方法はありますか? 明らかに、誰かが JavaScript で何かを壊したい場合、彼らはそれを行うことができますが、私はベスト プラクティスを探しているだけです。
クラスの一番上にこのようなものを投げることができますが、それが良い答えかどうかはわかりません:
if (this === window) {
console.log("You are fail");
return;
}