当代码中使用$(this)时,人们如何命名?

0 javascript jquery

我有以下代码:

$('#detailData')
    .on('change', '.updatable', function () {
        var type = $(this).attr('id').split('_')[1];
        updateField(entity, $(this), type);
        return false;
    })
Run Code Online (Sandbox Code Playgroud)

我想添加代码并$(this)多次使用.为了说清楚,我想分配this一个变量.当我使用jQuery时,我看到人们$在变量名之前放置了一个.我是否正确说下面的内容是正确的?

var $abc = $('#abc');
Run Code Online (Sandbox Code Playgroud)

如果这是正确的,那么$(this)如果我理解正确指向DOM变量,我应该如何命名.DOM变量和返回的变量之间是否有任何区别$('#abc')

Aln*_*tak 7

使用$this存储$(this)只是一个代号约定,用来提醒程序员有问题的变量是已经一个jQuery对象而不是一个纯粹的DOM元素.

它有助于避免写作的常见错误:

var foo = $(...);
$(foo).doSomething();
Run Code Online (Sandbox Code Playgroud)

这个错误是无害的,但会导致代码效率低下.

相反,使用$foo也提醒程序员他们不能直接在该变量上调用本机DOM函数,而应该使用$foo[n]$foo.get(n)访问所包含的DOM元素.

另外,不要忘记,因为this 只是一个纯DOM元素,您可以(并且应该)在适当时使用本机DOM函数或属性:

var type = this.id.split('_')[1];
Run Code Online (Sandbox Code Playgroud)