访问任何caller
函数的Math
属性时(sin,cos,..)会导致以下错误。
未捕获的TypeError:'来电者'和'论证'是限制功能 属性,在此上下文中无法访问。
但是,调用与window.alert
等其他函数相同的属性或任何用户定义的函数都会返回null
。
Math.sin.caller // ERROR
window.alert.caller // null
这种行为背后的原因是什么?这种限制的目的是什么?
答案 0 :(得分:0)
Math.sin
是一个严格的函数,而window.alert
则不是。function f() {
'use strict';
alert( 'hi' );
}
function g() {
alert( 'hi' );
}
console.log(g.caller) // null
console.log(f.caller) // null
。
您可以在下面的代码中看到相同的内容:
Dog.self