Javascript:令牌上的语法错误" delete",StringLiteral?

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']();