javascript - 关于js删除对象属性的问题
迷茫
迷茫 2017-04-10 15:04:34
[JavaScript讨论组]

"term": 1,
"year": "2014-2015",

这是对象中的两个属性

delete comments[item].year;
delete comments[item].term;

year能删除 而term不能删除 我认为是不是因为他是整形的 那有什么办法能删掉term 连同属性名一起删除

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
PHP中文网

delete运算符可以用来删除对象的属性。如果对象包含该属性,那么该属性就会被删除,它不会触及原型链中的任何对象。

var p = {
    "term" : 1,
    "year" : "2014-2015"
};
delete p.term;
delete p.year;
console.log(p.term);  //undefined 不存在则返回undefined
console.log(p.year);  //undefined 

但是,删除对象的属性可能会让来自原型链中的属性透现出来:

var A = {
   "term" : 1
}
var p = {
    "term" : 1,
    "year" : "2014-2015"
};
var B = function(){};
B.prototype = A;
p = new B();
delete p.term;
delete p.year;
console.log(p.term);  // 1        暴露了原形链中的属性
console.log(p.year);  //undefined 不存在则返回undefined

所以你还是检查下你的原型链上是否有这个属性,贴出你的完整代码吧 o(╯□╰)o

大家讲道理
jsvar p = {
"term" : 1,
"year" : "2014-2015"
};

console.log(p);

delete p.year
delete p.term;

console.log(p);

都可以删除呀

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号