JavaScript面向对象的支持(下)
2010-09-14 13:37:33 来源:WEB开发网有些时候,我们可以“即声明即使用”一个直接量,下面的代码演示这一特性:
// 直接量的“即声明即使用”
var obj = function () {
// 1. 声明了一个匿名函数
return {
// 2. 函数执行的结果是返回一个直接声明的"对象"
value: 'test',
method: function(){}
}
}();
// 3. 使匿名函数执行并返回结果,以完成obj变量的声明在这个例子中,很多处用到了直接量的声明。这其中函数直接声明(并可以立即执行)的特性很有价值,例如在一个.js文件中试图执行一些代码,但不希望这些代码中的变量声明对全局代码导致影响,因此可以在外层包装一个匿名函数并使之执行,例如:
//---------------------------------------------------------
// 匿名函数的执行
// (注:void用于使后面的函数会被执行, 否则解释器会认为仅是声明函数)
//---------------------------------------------------------
void function() {
if (isIE()) {
// do something...
}
}();
2). 对象系统
对象系统中一个未被提及的重要内容是delete运算.它用于删除数组元素、对象属性和已声明的变量.
由于delete运算不能删除用var来声明的变量,也就意味着它只能删除在函数内/外声明的全局变量.--这个说法有点别扭,但事实上的确如此.那么我们可以更深层地透视一个真想:delete运算删除变量的实质,是删除用户在window对象的上下文环境中声明的属性.
回到前面有关"上下文环境"的讨论,我们注意到(在函数外)声明全局变量的三种形式:
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接