私はnew
で作成したカスタムJavaScriptオブジェクトを持っている、と創造の引数に基づいてにプロパティを割り当てる:JavaScriptオブジェクトにプロパティが存在するかどうかをテストする正しい方法は何ですか?
function MyObject(argument) {
if (argument) {
this.prop = "foo";
}
}
var objWithProp = new MyObject(true); // objWithProp.prop exists
var objWithoutProp = new MyObject(false); // objWithoutProp.prop does not exist
オブジェクトのprop
プロパティが存在するかどうかをテストするための正しい方法は何ですか?私が使用し、次の方法を見てきましたが、これらのいずれかの方法が最良の方法である場合、私はよく分からない。具体的に
if (obj.prop) {}
if (obj.hasOwnProperty("prop")) {}
if ("prop" in obj) {}
、私は」プロトタイプチェーンではなく、このオブジェクトに対してプロパティが明示的に定義されているかどうかをテストすることにのみ関心があります。さらに、値はnull
またはundefined
に決して設定されませんが、空のオブジェクトや配列のようなものになる可能性があります。しかし、正しい方法があればそれを含めるには、自由に感じてください。 「プロパティが明示的にこのオブジェクトのために定義されている場合ではないプロトタイプチェーン内に、」指定したので、