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

在JavaScript中使用面向对象

 2010-09-14 13:20:02 来源:WEB开发网   
核心提示: 在JavaScript中this关键字是比较重要的一个特点,它会随调用对象而发生改变,在JavaScript中使用面向对象(4),始终与当前对象的上下文保持一致,这里一个例子让我们演示this并且同时继续深入研究toString,首先我们使用构造器方式创建一个对象,因为在该调用中,&ldq

在JavaScript中this关键字是比较重要的一个特点,它会随调用对象而发生改变,始终与当前对象的上下文保持一致,这里一个例子让我们演示this并且同时继续深入研究toString,首先我们使用构造器方式创建一个对象,代码如下:

functionobj(params){
toString=function(){return'Thisisanobject.';}
}
alert(newobj());

你会发现当运行这段代码的时候,浏览器将会抛出一个错误。

下面我们再看另外两段代码:

functionobj(params){
aMethod=function(){return'Thisisglobalmethod.';}
}
alert(newobj());//正常执行
functionobj(params){
this.toString=function(){return'Thisislocalmethod.';}
}
alert(newobj());//正常执行

第一个函数声明虽没有使用this关键字,这时如果初始化对象那么将声明一个全局方法aMethod。第二个函数声明则为对象定义了一个自己的toString()方法。

当分析这两个函数的时候,你会注意到JavaScript的另一个特性,解释执行,所以

functionobj(params){
aMethod=function(){return'Thisisglobalmethod.';}
}
alert(aMethod());//此语句会报错
functionobj(params){
aMethod=function(){return'Thisisglobalmethod.';}
}
newobj(); //实例化的时候,声明了全局的aMethod()方法
alert(aMethod());//正常执行

通过上面的例子我们知道通过this非常重要,如果使用不当,可能造成全局函数的改变。有一点需要记住,绝不要调用包含“this”(却没有所属对象)的函数。否则,将违反全局命名空间,因为在该调用中,“this”将引用全局对象,而这必然会给您的应用程序带来灾难。

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

Tags:JavaScript 使用 面向

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