Как я могу сохранить контекст 'этого' в jQuery

У меня есть этот псевдоним в моем .profile, который я использую довольно часто

$ alias | grep xlogs
xlogs='sudo find . \( -name "*.log" -o -name "*.trc" \) -mtime -1 | sudo xargs ls -ltr --color | less -R'

Так что он делает то, что вы ищете (за исключением того, что он не изменяет дату / время на нескольких уровнях) - выглядит для последних файлов (в данном случае * .log и * .trc); Кроме того, он находит только файлы, измененные в последний день, затем сортирует по времени и передает данные через меньшее:

sudo find . \( -name "*.log" -o -name "*.trc" \) -mtime -1 | sudo xargs ls -ltr --color | less -R

пс. Обратите внимание, что у меня нет root на некоторых серверах, но всегда есть sudo, поэтому вам может не понадобиться эта часть.

7
задан Brian Tompsett - 汤莱恩 31 May 2015 в 20:08
поделиться

5 ответов

Найденное вами решение является наиболее популярным. Общепринятое соглашение - называть вашу переменную tempThis «that».

var Something = function(){
  this.render = function(){};
  var that = this;
  $(window).resize(function(){
    that.render();
  });
};
14
ответ дан 6 December 2019 в 11:51
поделиться

Это похоже на ваш лучший вариант, я не думаю, что есть лучший способ. (поправьте меня, если я ошибаюсь).

2
ответ дан 6 December 2019 в 11:51
поделиться

Это именно то, что я делаю. Это также не относится к jQuery.

var Construct = function() {
    var self = this; //preserve scope

    this.materials = 2000;

    this.build = function(){
        self.materials -= 100;
    };
};

Не забудьте использовать ключевое слово var перед новой переменной области видимости. В противном случае вы создаете новую глобальную переменную. Как локальная переменная, она по-прежнему будет доступна внутри внутренней функции через замыкание.

0
ответ дан 6 December 2019 в 11:51
поделиться

Я делал это во многих тайтовых ситуациях. Выглядит не элегантно, но никогда не подводит. На самом деле это закрытие javascript в действии.

jrh

0
ответ дан 6 December 2019 в 11:51
поделиться

К вашему сведению, возможность контролировать это появится в следующей версии JQuery

1
ответ дан 6 December 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: