Javascript删除操作符
Javascript delete operator
我读过一本关于javascript的书,上面写着:
var o = {x:1 , y:2 };
delete o ; // Can't delete a declared variable so returns false;
然而,本书还指出,在任何函数作用域之外声明的变量都是全局对象的属性。
如果它是全局对象的属性,为什么不允许删除它?
说明:
var o = {x:1 , y:2 };
在顶级作用域中,您声明了一个全局变量,该变量不能被删除。它确实在全局对象上创建了一个属性(在浏览器中别名为window
对象),但它确实是一个特殊的属性。但是,如果声明如下:
o = {x:1 , y:2 };
则隐式地在全局作用域(请记住,是window
对象)上设置属性。这两者很相似,但又有很大的不同。delete
操作符从对象中删除隐式属性,但不会删除在全局对象上创建的变量。
编辑,找到更彻底的答案
https://stackoverflow.com/a/4862268/1443478因为0已经被声明并且有属性,所以你不能在对象上使用delete。你可以使用
var o = {x:1 , y:2 };
delete o.x ;
首先要知道delete操作符的作用是什么。让我解释一下——
"The delete operator removes a property from an object".here i say it removes an object property not a variable.
in your code you declare a variable.not an object so delete does not work.i think you understand.
o = {x:1 , y:2 };
delete o ;
,但我认为上面的代码是正确的。为什么?因为这里0是全局对象的一个属性它也是一个对象,所以它能正常工作。可以帮助您的链接是delete operator
这是我的第一个答案。相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 为什么delete操作符操作符不删除NodeList类的属性
- Javascript删除操作符
- 如何删除或隐藏过滤器操作符下拉列表
- javascript中的删除操作符
- javascript中删除操作符的行为