2
我有JavaScript代碼,如果它正在瀏覽器中運行,但我不想在運行單元測試時引發警報,則會發出警報。什麼是JavaScript中的非法調用typeerror
我試圖通過具有線
if(allowAlerts === false){
alert = console.log;
}
解決這個,但是當我再運行
alert("This bad thing happened");
我回來
TypeError: Illegal invocation
直接重新分配警報是kludgey解決方案,我可以通過其他方式輕鬆解決問題,但我從來沒有遇到過非法調用錯誤befo並希望有人能夠解釋它的含義。
或者只是墊片'bind' :) –
@AdamRackis正如你不能讓一個完整的墊片綁定,我是不同的這種解決方案。要麼我不關心舊的瀏覽器,要麼我完全避免使用「shim」。 –
你是什麼意思?你用Object.create來混合綁定墊片嗎? bind shim不會模擬設置'this'和咖喱參數的真實情況嗎? –