加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

Javascript中要害字this的先容与实例

发布时间:2018-08-27 17:19:58 所属栏目:创业 来源:站长网
导读:在javascript中要害字this是一个很难把握的观念。它在差异的环境下指代差异的工具。下面就来看看,在 Java Script中各类this的行使要领有什么差异之处? 1、在HTML元素变乱属性中inline方法行使this要害字: div onclick=method(this)element/div 这里的th

在javascript中要害字this是一个很难把握的观念。它在差异的环境下指代差异的工具。下面就来看看,在JavaScript中各类this的行使要领有什么差异之处?

1、在HTML元素变乱属性中inline方法行使this要害字:

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

这里的this代表触发onclick时刻的Dom工具。

2、在变乱处理赏罚函数中行使this要害字:

<div id="elmtDiv">element</div>
<script language="javascript">
var div = document.getElementById('elmtDiv'); 
 div.onclick = function() 

// 在此行使this 
}; 
</script>

这里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的工具。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读