Tôi đang sử dụng hàm eval
theo cách kỳ lạ, với tư cách là một hàm tạo.Không phải tất cả các hàm xây dựng hàm JavaScript đều không?
try {
var y = new eval()
} catch(error) {
console.log("caught a " + error.name + ": " + error.message);
}
Nó ném lỗi như,
caught a TypeError: function eval() { [native code] } is not a constructor
Như thông báo lỗi cho thấy, eval là một chức năng nhưng không phải là một nhà xây dựng.
Câu hỏi đặt ra là, không phải tất cả hàm javascript đều hoạt động như người xây dựng?
eval là từ khóa dành riêng/một hàm gốc. Không gây rối với nó. –
Không, một số ngoại lệ đáng chú ý khác là một số phương thức _DOM_ và hàm _arrow_ 'x => undefined' –
Đồng ý, eval là hàm dựng sẵn. Nếu bạn đã tạo ra 'hàm myEval() {}' của riêng mình và sau đó sử dụng mã đó, nó sẽ ổn thôi. –