问题描述
let a=1;
let fn=function(){return this;}
console.log(fn.call(1)); //Number {[[PrimitiveValue]]: 1}
语言规范
The thisArg value is passed without modification as the this value. This is a change from Edition 3, where an undefined or null thisArg is replaced with the global object and ToObject is applied to all other values and that result is passed as the this value. Even though the thisArg is passed without modification, non-strict functions still perform these transformations upon entry to the function.
Return a new Number object whose [[NumberData]] internal slot is set to the value of argument.
结论
当this
传入原始值时,会在原始值上调用ToObject
,将原始值转换成相应的包装对象。
网友评论