45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > javascript >

在Javascript中使用this关键字有什么作用

电脑软硬件应用网 45IT.COM 时间:2010-02-01 13:41 作者:网络收集

在很多开发语言中都可以使用this这个关键字,那么在js中使用this关键字有什么作用呢?本文我们一起来深入探讨下。在JavaScript中各种this的使用方法有什么不同之处呢?

1、在HTML元素事件属性中inline方式使用this关键字:

<div onclick="method(this)">element</div>

 

这里的this代表触发onclick时间的Dom对象。

 

2、在事件处理函数中使用this关键字:

1 <div id="elmtDiv">element</div>
2
  <script language="javascript">
3
  var div = document.getElementById('elmtDiv');
4  div.onclick = function()
5  {
6     // 在此使用this
7
  };
8  </script>

 

这里this指代的对象和上面一样。

 

3、函数中的this

函数中的this代表调用函数的对象。

1 function print(message)
2 {
3      this.alert(message);
4 }
5 
6
 print("this is window");

 

例如上面这个函数print的定义也可以写成。window.print = function(){}.调用print(),实际上是调用window对象上的方法print。所以print中的this代表window对象。还有类似的情况是在构造函数中定义的方法:

 1 function MyClass(name)
 2 {
 3     this.name = name;
 4     this.toString = function(){
 5         return this.name;
 6     }
 7 }
 8 
 9
 var my = new MyClass('myclass');
10 alert(my.toString());

 

this指向的是调用此方法的对象my。

4、在类的构造函数中使用this

代码
function JSClass()
{
    var myName = 'jsclass';
    this.m_Name = 'JSClass';
}

JSClass.prototype.ToString = function()
{
    alert(myName + ', ' + this.m_Name);
};

var jc = new JSClass();
jc.ToString();
 

这是JavaScript构造函数中对this的使用,这个和其它的OO语言中的情况非常的相识。但是这里要求成员属性和方法必须使用this关键字来引用,运行上面的程序会被告知myName未定义。有关构造函数的相关内容:Javascript(js)使用function定义构造函数有详细的介绍。

5、为脚本引擎内部对象添加原形方法中的this关键字

1 Function.prototype.GetName = function()
2 {
3     var fnName = this.toString(); 
4     fnName = fnName.substr(0, fnName.indexOf('(')); 
5     fnName = fnName.replace(/^function/''); 
6     return fnName.replace(/(^\s+)|(\s+$)/g, '');
7 }
8 function foo(){}
9 alert(foo.GetName());    

这里的this指代的是被添加原形的类的实例。

6、函数调用中的this

在将函数作为一个对象的方法调用时,如:

1 function print()
2 {
3     alert(this.toString());
4 }
5 
6
 print.apply('this is first argument');
7 print.call('this is first argument');

在Function.apply和Function.call中的第一个参数就是函数中this的对象。

好,介绍完毕,希望你同样学到东西。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识