手机版

解析Java脚本语言中删除操作符不能删除的对象

时间:2021-11-12 来源:互联网 编辑:宝哥软件园 浏览:

ES3中,删除在8.6.2.5及11.4.1有介绍,如下

有一些信息,1、实现上删除操作符会调用引擎内部的[[删除]]方法2、[[删除]]在8.6.2里定义

3、删除的属性有个不要删除的特性,如果有,删除时直接返回错误的搜索"不要删除",会发现有很多,如下都不能删除1,激活对象的争论对象(10.1.6)复制代码代码如下: func func(){ 0删除参数;警报(参数);} func(1);2,变量声明(10.2.1)复制代码代码如下:var a=10删除a;警报(a);//10 这一条在很多射流研究…书里有提及,即不能删除掉使用定义变量声明的变量。3,函数声明复制代码代码如下: func func(){ } delete func;alert(func);//func代码4,函数的长度属性复制代码代码如下: func func(a,b){ } delete func。长度;警报(功能。长度);//2 5,一些常量(NaN ),无穷大、未定义)复制代码代码如下:delete NaN//false删除Infinity//false删除未定义;//false 6、内置构造器的原型复制代码代码如下:删除对象。原型;//false删除Function.prototype//假的删除Array.prototype//假的删除ExpReg.prototype//假的删除Date.prototype//假的删除错误。Error.prototype//假的删除Number.prototype//假的删除Boolean.prototype//假的删除String.prototype//假7,数组和字符串的长度复制代码代码如下:var arr=[],str=' hello删除arr.length//假的删除str.length//假声8,数学对象的属性(数学。数学。数学。数学LOG2E ,数学LOG10E、数学。圆周率、数学SQRT1_2,数学SQRT2)复制代码代码如下:删除数学e .//false.9,正则对象的属性(来源、全局、忽略、多行、最后索引)复制代码代码如下: var reg=/ss/;删除reg.source//假的.ES5与ES3不同,ES5中没有"不要删除",却增加了[[可配置]] (8.6.1).

如果该值为假的,则不能删除,以上列举的9点在ES5中描述为[[可配置]]为假的. ES5新增的Object.defineProperty方法可显示的定义对象的可配置,如下复制代码代码如下: var obj={ name : ' John ' };对象。define property(obj,' key ',{ configurable: false,value : ' static ' });删除obj.name//真实删除obj.key //false对象目标文件有名字,钥匙。名字可以删除,键则不行。此外ES5严格模式中删除可配置的为错误的的对象时会直接抛异常。如复制代码代码如下:"使用严格";删除对象原型;消防中控制台报错如下

除了内置对象的一些方法或属性,有些自定义对象是不能删除的。例如delete不能删除对象,从原型继承属性,复制代码如下: function person () {} person。prototype.name=' John backusvar p=新人员();删除p . name;console . log(p . name);//仍然输出约翰巴科斯。如果this和prototype都有名称,那么删除后,prototype上的复制代码将呈现如下: function person () {this。名字=‘约翰巴克斯’;} person . prototype . name=' John Resig ';var p=新人员();console . log(p . name);//约翰巴科斯删除p . name;console . log(p . name);//John Resig,从原型来看,如果要删除原型上的名字,只能复制代码如下: delete Person。总的来说:1。内置对象的大部分属性和方法都不能删除(虽然有些可以删除,比如isNaN和parsent)2。从原型继承的属性和方法不能删除的原因也很简单。1.内置对象的大部分属性和方法都不能删除,以保护语言的核心API。这些API都被删除了,基本都被丢弃了。例如,删除对象.原型.2.从原型继承的属性和方法不能为了保护原型而删除,否则“A类的对象删除了原型上的属性,那么所有从A继承的都将失去属性”。

版权声明:解析Java脚本语言中删除操作符不能删除的对象是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。