私は奇妙な方法でeval
関数をコンストラクタとして使用しています。JavaScript関数のコンストラクタもすべてではありませんか?
try {
var y = new eval()
} catch(error) {
console.log("caught a " + error.name + ": " + error.message);
}
それとしてエラーをスローし、エラーメッセージが示すように
caught a TypeError: function eval() { [native code] } is not a constructor
は、評価関数ではなく、コンストラクタです。
質問は、すべてのjavascript関数がコンストラクタとしても機能するわけではありませんか?
evalは予約されたキーワード/ネイティブ関数です。それで混乱しないでください。 –
いいえ、いくつかの他の注目すべき例外はいくつかの_DOM_メソッドと_arrow関数です。 'x => undefined' –
合意した、evalは組み込み関数です。独自の 'function myEval(){}'を作成し、そのコードを使用した場合、それは問題ありません。 –