这里delete为什么不管用???? var a=function(){ for(i in this) delete this[i]//这里delete为什么不管用????}a.prototype.a="aaaa"var aa=new aalert(aa.a)//依然弹出aaaa 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var a=function(){}a.a="aaa"a.prototype.a="aaaaaa"delete a.a,delete a.prototype.aalert(a.a)//undefinedalert(a.prototype.a)//undefinedvar aa=new aalert(aa.a)//undefinedvar a=function(){ this.a="aaaa"}a.prototype.b="bbbb"var aa=new adelete aa.a;delete aa.balert(aa.a)//正常删除 弹出undefinedalert(aa.b)//不能删除 弹出bbbba.prototype.b 不能被删除 为什么???? 建议你跟一下,看看for(i in this)到底遍历到了哪些属性。猜测原型式继承可能是在构造之后进行的。 这样不能删除var a=function(){ alert("sss")}delete aalert(a)//不能删除 弹出a函数这样可以删除var a=function(){}a.b=function(){ alert("sss")}delete a.b//alert(a.b)//成功删除 弹出undefined var a=function(){}a.b=function(){setTimeout(function(){ alert("sss")},50000)}a.b()delete a.b//即使a.b正在执行 delete也将删除a.balert(a.b) delete 从一个集合中,需要倒着来,从i-1 到 0 delete删除一个对象的属性或者数组中特定位置的元素。 实现版本 Navigator 2.0 语法delete objectName.propertydelete objectName[index]delete property 参数objectName 对象的名称。 属性 已有的属性。 index 一个整型数值,表明了要删除的元素在数组处的位置。 描述第三种格式只在 with 语句中合法。 如果删除成功,delete 操作符将把属性或元素设为 undefined(未定义)。delete 总是返回 undefined。 所直接delete方法是不行的.他不是对象的属性. var a=function(){ for(i in this) delete this[i]//这里delete为什么不管用???? delete a.prototype.a}楼顶的问题.你删除的只是新建对象aa里的a属性.当aa.a没值得的时候.会到prototype中找值.要删除原型的才会有用. Javascript的delete与C++不同,它不会删除o.x属性指向的对象,而是删除o.x属性本身。在实际的Javascript中,delete o.x之后,Object对象会由于失去了引用而被垃圾回收,所以delete o.x也就“相当于”删除了o.x所指向的对象,但这个动作并不是ECMAScript标准,也就是说,即使某个实现完全不删除Object对象,也不算是违反ECMAScript标准。并不是所有的属性都能被delete。例如,prototype中声明的属性就无法被delete:对象的预定义属性也无法删除。 可以认为这类属性带有DontDelete的特性。通过var声明的变量和通过function声明的函数拥有DontDelete特性,无法被删除但是有一点例外,就是通过 eval 执行的代码中,通过var声明的变量虽然与正常的var声明变量同属于Global对象,但它们不具有DontDelete特性,能被删除。delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且拥有DontDelete时返回false,否则返回true。这里的一个特点就是,对象属性不存在时也返回true,所以返回值并非完全等同于删除成功与否。 直接delete方法不行吧?!它可不是对象的属性啊. JqueryUploadify 如何限制上传文件总数? 怎么获取别人网站的JavaScript代码 关于checkbox的问题,急急 [求助] ExtJs组件的问题 一个菜鸟问题,关于兼容性 父窗口关闭,如何找到子窗口的句柄,从而关闭该窗口。 下拉框获取焦点自动打开,不用点那个下拉的标志 有关在触摸屏上输入中文的一些问题(100分) 为什么有的机器上禁止不了alt和ctrl键?? 升到5角了,散分,顺便提供一个多级下拉菜单的代码 Jquery 中 Drag & Drop事件再绑定~ 如何在原有的页面上弹出登录页面?
a.a="aaa"
a.prototype.a="aaaaaa"
delete a.a,delete a.prototype.a
alert(a.a)//undefined
alert(a.prototype.a)//undefined
var aa=new a
alert(aa.a)//undefinedvar a=function(){
this.a="aaaa"
}
a.prototype.b="bbbb"
var aa=new a
delete aa.a;delete aa.b
alert(aa.a)//正常删除 弹出undefined
alert(aa.b)//不能删除 弹出bbbba.prototype.b 不能被删除 为什么????
for(i in this)
到底遍历到了哪些属性。猜测原型式继承可能是在构造之后进行的。
var a=function(){
alert("sss")
}delete a
alert(a)//不能删除 弹出a函数这样可以删除
var a=function(){}
a.b=function(){
alert("sss")
}
delete a.b//
alert(a.b)//成功删除 弹出undefined
a.b=function(){
setTimeout(function(){
alert("sss")
},50000)
}
a.b()
delete a.b//即使a.b正在执行 delete也将删除a.b
alert(a.b)
删除一个对象的属性或者数组中特定位置的元素。
实现版本 Navigator 2.0 语法
delete objectName.property
delete objectName[index]
delete property
参数
objectName 对象的名称。
属性 已有的属性。
index 一个整型数值,表明了要删除的元素在数组处的位置。 描述
第三种格式只在 with 语句中合法。
如果删除成功,delete 操作符将把属性或元素设为 undefined(未定义)。delete 总是返回 undefined。
var a=function(){
for(i in this)
delete this[i]//这里delete为什么不管用????
delete a.prototype.a
}楼顶的问题.
你删除的只是新建对象aa里的a属性.
当aa.a没值得的时候.
会到prototype中找值.
要删除原型的才会有用.
在实际的Javascript中,delete o.x之后,Object对象会由于失去了引用而被垃圾回收,所以delete o.x也就“相当于”删除了o.x所指向的对象,但这个动作并不是ECMAScript标准,也就是说,即使某个实现完全不删除Object对象,也不算是违反ECMAScript标准。并不是所有的属性都能被delete。例如,prototype中声明的属性就无法被delete:
对象的预定义属性也无法删除。 可以认为这类属性带有DontDelete的特性。
通过var声明的变量和通过function声明的函数拥有DontDelete特性,无法被删除
但是有一点例外,就是通过 eval 执行的代码中,通过var声明的变量虽然与正常的var声明变量同属于Global对象,但它们不具有DontDelete特性,能被删除。
delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且拥有DontDelete时返回false,否则返回true。这里的一个特点就是,对象属性不存在时也返回true,所以返回值并非完全等同于删除成功与否。