javascript delete 使用示例代码
Jan 20, 2017 am 10:52 AMjavascript delete example
var flower={}; flower.name="oop"; delete flower.name; //true alert(flower.name); //undefined
创建一个名为flower的对象
flower具有成员name,值"oop";
delete 操作 删除这个成员
删除成功,已不存在flower.name这个成员
javascript delete example 2
alert(isNaN(5)); //false delete isNaN; //true alert(isNaN(5)); //undefined
delete 操作符 甚至可以删除全局对象Global的成员
不能删除 var 申明的变量
var flower="monkey"; delete flower; //false alert(flower); // "monkey"
用 var 申明的变量,delete 后 返回false.并没有删除成功 变量依然存在;
注意:delete仅在删除一个不能删除的成员是,才会返回false
ie下不能删除宿主对象下的变量在ie浏览器下
window.flower="monkey"; delete flower; //抛出异常 alert(flower);
在ff浏览器下
window.flower="monkey"; delete flower; //true alert(flower) //undefined
可以看到 delete window的成员时,浏览器表现不一致
window是javascript的宿主对象
宿主对象可以是javascript执行环境自己定义的
在ie6-8浏览器中,不能delete window.flower,浏览器会提示你"对象不支持该操作",也就是不能删除window下成员
不能删除用函数名申明的函数
function flower(){} delete flower; //true alert(flower);//undefined
结果显示 delete 不能删除 用函数名申明的函数
不能删除继承自原型的成员
function flower(){}; flower.prototype.name="monkey"; var a1=new flower(); a1.name="a1_monkey" alert(a1.name);//"a1_monkey" delete a1.name;//ture alert(a1.name);//"monkey"
a1是flower的实例,通过实例来删除原型的和父类的成员是不可行的~
如果一定要删除该属性("这里以name为例"),只能对原型进行操纵
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能删除具有DontDelete特性的成员
那什么是具有DontDelete特性的成员呢
例如var 申明的变量,函数名申明的函数,Function对象的length等极少数几个拥有DontDelete特性
delete 返回值false or true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功
如 : 执行代码 alert(delete a); // true
a是一个未申明且不存在的变量。 delete 依然返回的是true
不同浏览器器之间的差异
(function(){ delete arguments; // false ,而在Mozilla中返回的是true typeof arguments; // "object" })();
巧妙的利用eval删除var 申明的变量
eval('var flower = 1'); alert(window.flower) //1 alert(flower)// 1 delete flower; // true alert(flower); // "undefined" var a=function(){}; eval('var a = function(){}'); delete a; // true alert(a); // "undefined"
eval后的全局变量,变得不具备DontDelete特性,可以用eval删除;
最后补充一条神奇的~睡觉前刚测试
window.flower=1;
delete flower 时对象会不支持此操作
我们可以用 with(window){flower=1}; 然后 delete flower (记住是delete flower,不是delete window.flower ,ie不允许那么做)
这样 window.flower就被删除了 :)
更多javascript delete 使用示例代码相关文章请关注PHP中文网!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

Tutorial Persediaan API Carian Google Custom

8 plugin susun atur halaman jquery yang menakjubkan
