2017-09-06 49 views
0

eval()在方法中以嚴格模式運行嗎?eval()在方法中以嚴格模式運行嗎?

class A { b() {eval("with(this) { 1 } ")} } 
new A().b() 
// strict mode error 

但不是在功能?

function b() {eval("with(this) { 1 }")} 
b() 
> 1 
+0

當然'eval'運行。但是'帶'不允許在那裏。你真的看過錯誤信息嗎? – Bergi

回答

1

這在文檔MDN明確說明,ES2017

類聲明和類表達式的屍體在 嚴格模式即構造函數,靜態和原型方法,吸氣劑和 setter函數被嚴格模式執行的處理。