javascript - 为什么我不能删除 document.body 属性?

标签 javascript html dom

> delete document
  false

这个我有点理解:document是window的一个不可配置的属性。

> delete document.body
  true
> document.body
  <body>
  ...</body>

但这是什么巫术?

最佳答案

因为文档没有“正文”属性。或者更确切地说,它没有自己的属性(property)。

console.log(document.hasOwnProperty("body")); //false
//now let's mimic what we're seeing with document.body
function X(){
    
}

X.prototype.body = "Abc";

var foo = new X();

console.log(foo.body); //Abc
delete foo.body; //no effect because I don't have this property. My prototype does

console.log(foo.body); //Abc (still)

delete foo.__proto__.body; //delete the prototype's property

console.log(foo.body); //undefined (now)

delete document.__proto__.__proto__.body; //delete the doc
console.log(document.body); //undefined (now)

关于javascript - 为什么我不能删除 document.body 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293845/

相关文章:

javascript - Redux mapStateToProps 返回未定义

javascript - 注入(inject)由 module.provider 定义的服务

javascript - 无法使用 IE8 通过脚本设置 marginTop 样式,但可以在成人浏览器中使用

javascript - 字符串文字未附加到 DOM

javascript - 使用PhantomJS提取html和文本

php - 将 <img> 元素包装在 <div> 中,但允许使用 <a> 标签

javascript - 我输入的每个字母都会停止

javascript - 如何使用 jQuery 获取每个选中的复选框

javascript - 文档更新但 getElementById() 返回不正确的值?

javascript - 没有最后一个元素的表追加