1. ホーム
  2. javascript

[解決済み] 匿名オブジェクトがメソッドを持つかどうかを確認するには?

2022-04-22 23:59:07

質問

匿名オブジェクトが作成されているかどうかを確認するにはどうすればよいですか?

var myObj = { 
    prop1: 'no',
    prop2: function () { return false; }
}

は、確かにprop2が定義されていますか?

prop2 は常に関数として定義されますが、一部のオブジェクトでは必須ではなく、定義されません。

ここで提案されたことを試してみました。 Native JavaScript オブジェクトがプロパティ/メソッドを持つかどうかを判断する方法は? しかし、私はそれが匿名オブジェクトのために動作するとは思わない。

解決するには?

typeof myObj.prop2 === 'function'; は、関数が定義されているかどうかを知らせます。

if(typeof myObj.prop2 === 'function') {
    alert("It's a function");
} else if (typeof myObj.prop2 === 'undefined') {
    alert("It's undefined");
} else {
    alert("It's neither undefined nor a function. It's a " + typeof myObj.prop2);
}