WEB开发网
开发学院网页设计JavaScript 在JavaScript中使用面向对象 阅读

在JavaScript中使用面向对象

 2010-09-14 13:20:02 来源:WEB开发网   
核心提示: 提到方法调用,这里有一些知识需要知道,在JavaScript中使用面向对象(3),在JavaScript中,所有的对象的基类是Object,因此,我们应该尽量避免使用全局变量,基类通过prototype定义了很多成员和方法,例如toString, toLocaleString, value

提到方法调用,这里有一些知识需要知道,在JavaScript中,所有的对象的基类是Object,基类通过prototype定义了很多成员和方法,例如toString, toLocaleString, valueOf等

这里我以toString()来做一介绍,请看下面示例:

varobj={"toString":function(){return"Thisisanobject.";}};

alert(obj);

我们注意到当alert的时候,toString()方法被调用了,事实上,当javascript需要将一个对象转换成字符串时就隐式调用这个对象的toString()方法,例如alert或者document.write或者字符串需要进行+运算等等。参加下面示例代码:

Date.prototype.toString=function(){alert('Thisiscalled');}
vardt=newDate(newDate());
Date.prototype.toString=function(){alert('Thisiscalled');}
vardt=newDate()+1;

通过这个例子我们验证了这一点,即使一个对象作为入口参数也可能会调用其toString方法。除了这一点外,该示例同时演示了如何覆盖基类中定义的方法。

全局变量和局部变量

在JavaScript中,在全局上下文中声明的变量作为全局变量,而在对象或方法内部声明的对象则作为本地变量。请参见下面的代码:

varglobal=1;
functionmm()
{
  varglobal=2;//声明本地变量
  alert(this.global);//等价于alert(global);
}
mm();
alert(this.global);//等价于alert(global);

上面例子我们可以看出本地变量和全局变量即使同名也不会出现冲突。

另外Javascript有一个特性就是变量不用声明就可以使用,在第一次使用一个未声明的变量时,系统会自动声明该变量,并将其作为全局变量。但是在构建大型应用程序的时候,这一点是非常具有破坏性的,如果该变量名在多个脚本块中出现,引起变量名冲突,导致严重的程序错误。因此,我们应该尽量避免使用全局变量,并且保持先声明后使用的良好习惯。

上一页  1 2 3 4 5 6  下一页

Tags:JavaScript 使用 面向

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