猿问

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

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

在我看到的JavaScript文件中:

function Somefunction(){
   var that = this; 
   ... }

声明的目的是什么?that并分配给this?


撒科打诨
浏览 479回答 3
3回答

郎朗坤

我将以一个例子开始这个答案: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.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答