Javascript:令牌上的语法错误" delete",StringLiteral?
问题描述:
var TestFunction = function () {
return {
delete: function() { // line 1
// do something
}
};
}
在eclipse的第1行获得以下错误
Getting below error on line 1 in eclipse
Syntax error on token "delete", StringLiteral
当我将删除更改为delete1时,错误消失了。是删除保留关键字吗?
As i changed "delete" to "delete1" , error goes away . Is delete a reserved keyword ?
答
是, delete
是一个保留关键字,用于删除某个属性对象,因此它不再可迭代。因此,给定:
Yes, delete
is a reserved keyword, used to remove a property in an object, so that it is not iterable anymore. Thus, given:
var a = { b: 5 };
delete a.b;
console.log(a);
// logs {}
它还可以用于删除全局变量实际上也是全局对象的属性,即:
It can be also used to remove "global variables" that are actually properties of the global object too, that is:
delete a;
// is in browsers equal to
delete window.a;
请注意,您可以使用 delete
作为属性名称,但是你需要总是引用它:
Notice that you can use delete
as a property name too, however you need to always quote it:
var obj = {
'delete': function() { // line 1
// do something
}
};
obj['delete']();