Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用方法将使此对象为空_Javascript - Fatal编程技术网

Javascript 调用方法将使此对象为空

Javascript 调用方法将使此对象为空,javascript,Javascript,我可以调用这样的方法 Func.apply(null,[123]); 如果函数依赖于此指针,它是否会从以下位置引发异常?: 蓟马 为调用fun提供的this的值。请注意,这可能不是该方法看到的实际值:如果该方法是非严格模式代码中的函数,null和undefined将替换为全局对象,并且原始值将被装箱 换句话说,除非函数使用严格模式,否则将使用window而不是null。如果它使用严格模式,此将为空 这是否会导致任何异常完全取决于所应用的函数。如果函数不使用此,则完全可以安全地传递任何值。如果它

我可以调用这样的方法

Func.apply(null,[123]);
如果函数依赖于
指针,它是否会从以下位置引发异常?

蓟马 为调用
fun
提供的
this
的值。请注意,这可能不是该方法看到的实际值:如果该方法是非严格模式代码中的函数,
null
undefined
将替换为全局对象,并且原始值将被装箱

换句话说,除非函数使用严格模式,否则将使用
window
而不是
null
。如果它使用严格模式,
将为

这是否会导致任何异常完全取决于所应用的函数。如果函数不使用此,则完全可以安全地传递任何值。如果它将
视为可能不为null的普通对象,则它可能仅在严格模式下失败。如果它依赖于设置的某个属性,则很可能在严格模式和非严格模式下都会抛出
TypeError
。创建仅在非严格模式下失败的函数非常容易(例如,通过添加显式检查)


(至少有些)内置数组函数使用显式检查。例如,Chrome上的
Array.prototype.split(未定义[1,2,3])
抛出了一个
TypeError:无法调用未定义的方法“apply”

自己试试。如果抛出,请在此询问原因?不同的实现可能会有所不同,这取决于函数使用
this
执行的操作,以及函数是否处于严格模式。它可能会也可能不会抛出错误。但在严格模式下,它肯定会抛出错误。