delete可以删除原型链中的属性吗?

delete可以删除原型链中的属性吗?

function foo(){}

foo.prototype.bar = 11

var obj = new foo()

delete obj.__proto__.bar

true

obj.bar

undefined

foo.prototype.bar

undefined

foo.prototype.bar = 22

foo.prototype.bar

22

delete foo.prototype.bar

true

foo.prototype.bar

undefined

无论是删除obj._proto_.bar 还是删除foo.prototype.bar 都可以删除这个原型上的属性 为什么考试里面的18题说delete不能删除原型链上的属性

而且delete是可以删除对象的方法的吧

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2019-07-29 15:10:02

同学你好,若是使用__proto__这样来删除的话,是可以的。

祝学习愉快!

好帮手慕糖 2019-07-29 14:20:35

同学你好,1、__proto__的话,值直接找到了这个原型对象然后删除的。我们说的删除,是直接删除是不可以的,如下这种。向我们访问一个属性的时候,一般也都是obj.bar这样直接去访问的。

delete obj.bar  // 这样是不能删除的。

2、可以删除方法的哦。关于delete关键字的使用,也可以参考下教辅哦。例:

http://img1.sycdn.imooc.com//climg/5d3e90060001f92103720224.jpg

希望能帮助到你,祝学习愉快!

  • 提问者 慕函数0414863 #1
    直接删除肯定是删除不了原型对象上的属性的 我想问的是delete能不能删除原型对象上的属性
    2019-07-29 15:03:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师