JavaScript中的`name`关键字是什么?

时间:2010-04-18 20:02:53

标签: javascript keyword

当我输入这个看似无辜的代码片段时:

values.name

gedit将名称突出显示为关键字。但是,an answer to a question about reserved keywords链接的网页未列出名称。我还在SpiderMonkey中进行了几项微不足道的测试,但名称似乎就像一个普通的标识符。

谷歌搜索也没有告诉我太多。但是,我确实发现a page listing name in "Other JavaScript Keywords".我的猜测是 name 是一个函数或某些DOM元素的成员,并且不会侵入命名空间。

名称真的是JavaScript中的关键字吗?如果是这样,它会做什么?

7 个答案:

答案 0 :(得分:16)

它不是一个javascript保留字,它是一个html属性。任何DOM元素都可以有一个名称。您的语法编辑器仍然会突出显示它。

答案 1 :(得分:3)

(我知道这是2年前问的,但是......) 这也发生在我身上,例如下面的内容不起作用。

name = document.getElementById('nombre');
//something else
name.className = 'thinking';

相反,我将其更改为

username = document.getElementById('nombre');
//something else
username.className = 'thinking';

它确实有效! 是的,好吧就是这样,但是我发现它可能非常有趣,也是因为'a'标签的'name'属性。需要注意的事项。

答案 2 :(得分:3)

什么?
'name' 是浏览器窗口对象的属性。它是 JavaScript 中的内置属性。
访问:https://developer.mozilla.org/en-US/docs/Web/API/Window/name

为什么@deprecated
window.name 仍在 JavaScript 中使用,但计划在未来将其删除。
访问:The Difference Between Deprecated, Depreciated and Obsolete

答案 3 :(得分:1)

它不是一个保留字,它是一个变量(它是window.name)我不确定它是由它定义的。

答案 4 :(得分:0)

这也发生在我身上,例如,当我测试调用,绑定函数时,以下内容对我不起作用。

var name={
firstname: 'Abhishek',
lastname: 'Agarwal',

fullname: function{
    var fname = this.firstname + ' ' + this.lastname;
    return fname;
}

function printname(){
    console.log(this.fullname());
}
var final=printname.bind(name);
final();

这实际上并没有执行任务,而是当我用“ myname”或字面上的任何其他内容替换“ name”出现时,它确实起作用了!

答案 5 :(得分:0)

对我来说也很奇怪,当我在 javascript 中学习调用、应用和绑定时,下面的代码对我不起作用。我打破了半小时,直到我发现我没有犯任何逻辑错误,但变量名称存在问题。

<块引用>

var name = {firstName: 'sarwan',lastName :'kumar'};

function say(){ console.log('' + this.firstName + ' ' + this.lastName); }

say.call(name);

这给了我结果

<块引用>

“未定义未定义”

而且我真的打破了我的头,怀疑不知何故这没有传递给 say 函数,尝试更改除 name 变量之外的其他代码部分,仍然对我不起作用。但后来想通了,以破坏我好半小时的心情为代价。

答案 6 :(得分:0)

在启用 Eslint 的同时使用 Visual Studio 代码编辑器,您可以看到“名称”被归类为“@deprecated”。尽管 Google 尚不清楚“name”是否是保留关键字,但“@deprecated”标签暗示该功能是正确的,可能是为了支持向后兼容性……等等,目前该功能已被拒绝,鼓励人们避免。