Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Ext对象中删除属性?_Javascript_Extjs_Extjs4 - Fatal编程技术网

Javascript 如何从Ext对象中删除属性?

Javascript 如何从Ext对象中删除属性?,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,如何从Ext对象中删除属性?例如: Ext.define('Classes.Person', {status:'load', config: { name: 'Eugene', surname : 'Popov' }, constructor: function(config) { this.initConfig(config); } }); var book = Ext.create('Cla

如何从Ext对象中删除属性?例如:

Ext.define('Classes.Person', {status:'load',
    config: {
            name: 'Eugene',
            surname : 'Popov'
    },
    constructor: function(config) {
        this.initConfig(config);
    }
  });

var book = Ext.create('Classes.Person') 
/*
console.log(book.status)//load 
console.log( book.surname  )//Popov 
delete book.status
delete book.surname;
 console.log( book.surname  )//Popov 
 console.log(book.status)//load  How delete property ? 
 */

是否有特殊方法执行此操作?

请删除属性的值,而不是删除属性

console.log(book.status)//load 
console.log( book.surname  )//Popov 
book.status = undefined; //remove the existing value
book.surname = undefined;
console.log( book.surname  )//undefined 
console.log(book.status)//undefined

如果您使用console.log(book),您会得到什么?为什么对个人实例使用
book
?无论如何,删除对象上的属性从来都不是一个好主意。由于实例不能共享相同的隐藏类(至少在V8中),因此它会使代码运行变慢。我相信Ext使用了
Object.defineProperty
来定义对象属性。默认情况下,以这种方式定义的属性是不可配置的,这意味着不能删除它们,也不能更改描述符。