在html元素事件属性中inline方式使用this关键字,Javascript中关键字this的介绍与实例...

在javascript中关键字this是一个很难掌握的概念。它在不同的情况下指代不同的对象。下面就来看看,在JavaScript中各种this的使用方法有什么不同之处?

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

element

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

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

element

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

3、函数中的this

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

function print(message)

{

this.alert(message);

}

print("this is window");

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

function MyClass(name)

{

this.name = name;

this.toString = function(){

return this.name;

}

}

var my = new MyClass('myclass');

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关键字

Function.prototype.GetName = function()

{

var fnName = this.toString();

fnName = fnName.substr(0, fnName.indexOf('('));

fnName = fnName.replace(/^function/, '');

return fnName.replace(/(^\s+)|(\s+$)/g, '');

}

function foo(){}

alert(foo.GetName());

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

6、函数调用中的this

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

function print()

{

alert(this.toString());

}

print.apply('this is first argument');

print.call('this is first argument');

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值