[JavaScript] 当this指向原始值

问题描述

let a=1;
let fn=function(){return this;}

console.log(fn.call(1));  //Number {[[PrimitiveValue]]: 1}

语言规范

[JavaScript] 当this指向原始值_第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.

[JavaScript] 当this指向原始值_第2张图片

Return a new Number object whose [[NumberData]] internal slot is set to the value of argument.

结论

this传入原始值时,会在原始值上调用ToObject,将原始值转换成相应的包装对象。

你可能感兴趣的:([JavaScript] 当this指向原始值)