在JavaScript中使用面向对象
2010-09-14 13:20:02 来源:WEB开发网在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”将引用全局对象,而这必然会给您的应用程序带来灾难。
Tags:JavaScript 使用 面向
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接