当我输入这个看似无辜的代码片段时:
values.name
gedit将名称突出显示为关键字。但是,an answer to a question about reserved keywords链接的网页未列出名称。我还在SpiderMonkey中进行了几项微不足道的测试,但名称似乎就像一个普通的标识符。
谷歌搜索也没有告诉我太多。但是,我确实发现a page listing name in "Other JavaScript Keywords".我的猜测是 name 是一个函数或某些DOM元素的成员,并且不会侵入命名空间。
名称真的是JavaScript中的关键字吗?如果是这样,它会做什么?
答案 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”标签暗示该功能是正确的,可能是为了支持向后兼容性……等等,目前该功能已被拒绝,鼓励人们避免。