function log(this) {
console.log(this);
}

它会抛出错误Unexpected token this
。那么为什么JavaScript不接受this
作为参数?
答案 0 :(得分:2)
this
是reserved keyword,因此无法用作变量名称。
如果您要覆盖某个功能的this
值,可以使用call
或apply
。
function log() {
console.log(this);
}
log.apply({ custom: "this value" });

答案 1 :(得分:0)
this
在语言中有特殊含义。它是一个标识符,但只能在特定情况下自动定义,开发人员从不明确定义。
开发人员仍然可以定义自动定义的其他标识符,例如arguments
,undefined
和window
,但在大多数情况下应该避免使用。
为了增加清晰度,在编程中,标识符是程序员用来引用值的标签。
在JS中,this
确实是一个关键字,根据ECMAScript语义,它阻止它被显式声明为标识符。这并不意味着它根本不是一个标识符,它显然是因为它总是让程序员引用一个值。
因此,某个关键字并不意味着它不是一个标识符。这确实意味着虽然在JS中,你没有选择明确地声明具有该名称的标识符,尽管其他语言有时允许这样做。
答案 2 :(得分:0)
this
是JavaScript中的保留关键字,不允许将其作为函数的形式参数。
在调用或调用该函数时,可以将this
作为参数传递给函数,但在定义函数时不能作为形式参数传递。
function log(that) {
console.log(that);
}
log(this); // passed as an argument