为了账号安全,请及时绑定邮箱和手机立即绑定

‘var=this;’在JavaScript中的意思是什么?

‘var=this;’在JavaScript中的意思是什么?

撒科打诨 2019-06-15 11:33:21
‘var=this;’在JavaScript中的意思是什么?在我看到的JavaScript文件中:function Somefunction(){    var that = this;     ... }声明的目的是什么?that并分配给this?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

我将以一个例子开始这个答案:

var colours = ['red', 'green', 'blue'];document.getElementById('element').addEventListener('click', function() {
    // this is a reference to the element clicked on

    var that = this;

    colours.forEach(function() {
        // this is undefined
        // that is a reference to the element clicked on
    });});

我的回答最初用jQuery演示了这一点,它只是略有不同:

$('#element').click(function(){
    // this is a reference to the element clicked on

    var that = this;

    $('.elements').each(function(){
        // this is a reference to the current element in the loop
        // that is still a reference to the element clicked on
    });});

因为this当通过调用新函数更改作用域时,经常会发生更改,因此无法通过使用它访问原始值。把它化成that的原始值。this.

就我个人而言,我不喜欢使用that作为化名。它所指的内容很少是显而易见的,特别是如果函数的长度超过了几行。我使用更具描述性的别名。在上面的例子中,我可能会使用clickedEl.


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信