WEB开发网
开发学院网页设计JavaScript JavaScript面向对象的支持(下) 阅读

JavaScript面向对象的支持(下)

 2010-09-14 13:37:33 来源:WEB开发网   
核心提示: 有些时候,我们可以“即声明即使用”一个直接量,JavaScript面向对象的支持(下)(10),下面的代码演示这一特性:// 直接量的“即声明即使用”var obj = function () {// 1. 声明了一个匿名函数return {

有些时候,我们可以“即声明即使用”一个直接量,下面的代码演示这一特性:

// 直接量的“即声明即使用”

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对象的上下文环境中声明的属性.

回到前面有关"上下文环境"的讨论,我们注意到(在函数外)声明全局变量的三种形式:

上一页  5 6 7 8 9 10 

Tags:JavaScript 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接