易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript的delete

刚刚拜读了 Javascript的变量与delete操作符 很受启发。原文只说了结果,没更深入推理总结一下为什么,以及怎么理解好一点,我这里补充总结一下。
 /// <reference path="http://tech.idv2.com/2008/01/09/javascript-variables-and-delete-operator/" />
/*
与c++不同,javascript的delete不会删除属性所指向的对象
“删除属性而不是删除对象”这一点,可以通过以下的代码来确认。
*/
var o = {};
var a = { x: 10 };
o.a = a;
delete o.a; // o.a属性被删除
o.a; // undefined
a.x; // 10, 因为{ x: 10 } 对象依然被 a 引用,所以不会被回收
/*
属性delete**结论:delete删除对象实例的属性 只对对象实例操作,不会影响到他的类型和原型
*/
function C() { this.x = 42; } //构造函数。
C.prototype.x = 12; //给o的原型对象添加属性x,所以不会被delete。
var o = new C(), d = new C();
alert(o.prototype); //显示undefined,因为其实只有函数才有prototype属性
//alert(C.prototype.isPrototypeOf(o));
alert(o.x); // 42, 构造函数中定义的o.x
delete o.x; // delete删除属性 只对对象实例操作,不会影响到他的原型
alert(o.x); // 12 在自身上找不到x,就会查找原型链。
alert(d.x); // 42 因为只删了实例o的x属性,并没删实例d的x属性,这里不会显示undefined
/*
测试变量delete**结论:通过var声明的变量和通过function声明的函数拥有DontDelete特性,
无法被删除。如果你曾经用闭包模拟过类的私有属性、方法,那也可以这样理解,通过var和
function声明的变量和有名函数,都是可以看做类的私有的成员,私有成员具有DontDelete特性。
*/
var a = 1;
delete a;
b = 2; //没有用var,可以理解默认为公有的属性,可以被删除
delete b;
alert(typeof b); //undefinded,被删了
function foo() {//全局对象的私有方法
return 42;
}
delete foo;
alert(foo()); // 42
function foo1() {
var local = 36;
delete local; // 删除local,很显然local是私有成员,没删掉
alert(local);
}
foo1();
/*
eval和delete**结论:eval比较特殊,参考
http://tech.idv2.com/2008/01/09/javascript-variables-and-delete-operator/#content_2_4
*/
eval("var x = 36;"); //注意:eval受作用域影响,更多参考htt


相关文档:

JavaScript 全局变量与作用域

 JavaScript 全局变量是其实是指:上下文环境 Window下的对象属性
 JavaScript作用域是基于上下文,是以函数进行划分的,而不是由块(block)划分的
 JavaScript允许变量的重复定义,并且后一个定义将覆盖前一个定义,如果后一个变量是局部变量也会覆盖前一个全局变量
 以下是一个例子:
 <scri ......

javascript:按回车相应按钮提交事件

    在表单提交前经常遇到表单验证问题而常用的方法有以下两种:
    1、使用提交按钮提交,在form表单中的onsubmit事件进行表单验证:
        <script type="text/javascript">
        & ......

JavaScript 单引号和双引号的使用

  今天在调试JavaScript程序,突然发现忘了单引号和双引号的区别是什么了,于是乎上网搜索之,加上自己的调试,最终发现原来是书上写的出错了。NND个熊,让我对这书失望极了。废话不说,直奔主题。
  JavaScript不区分单个字符和字符串,任何字符或字符串可以用双引号或单引号引起来。如果字符串本身含有双 ......

JavaScript 复选框的反选

 
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<mce:script language="javascript" type="te ......

Javascript操作下拉框的常用方法

原文:刘武
| Javascript操作下拉框的常用方法
项目中碰到需要用javascript操作下拉框的情况,顺便做一下总结,列出一些常用方法,以下方法均在FIRFOX3.5及IE8上测试过,如有其他浏览器无法正常运行的请与笔者联系。
//添加一个下拉框
function AddDropDownList(id,fatherCtl)
{
if(!document.getElementById(id) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号