文字列に名前があるときに関数を呼び出す必要があるコードがあります。たとえば、次のようにウィンドウ関数ポインタがJavaScriptで機能しない
var util = {
exByName: function(name) {
window[name](arguments);
}
};
util.exByName("console.log", "blah");
私はこれを実行すると、エラーは:私はブラウザ(オペラ)でこれを実行したときに、しかし 「キャッチされない例外TypeErrorウィンドウ[名]は関数ではありません」:
window["console.log"]("blah");
正常に動作します。 誰かがこれを手伝ってくれますか?あなたが使用する必要が他のブラウザとconsole.log
のような名前空間の機能を持つ
そのようなネストされたプロパティを参照できるためです。そして私はクロムがそれを参照して動作しないことを知っています。 – epascarello
あなたが呼び出す機能が実際にウィンドウスコープにあることを確認してください。 'window.onload'や' $(function(){...}) 'を使った場合は、ウィンドウスコープにはありません。 –
@ミサズ - もちろんです。ウィンドウスコープにない場合は、ウィンドウからアクセスすることはできません。 –