Что означает «это» в jQuery? [дубликат]

Поместите следующий код в config/initializers/quiet_assets.rb

if Rails.env.development?
  Rails.application.assets.try(:logger=, Logger.new('/dev/null'))
  Rails::Rack::Logger.class_eval do
    def call_with_quiet_assets(env)
      previous_level = Rails.logger.level
      Rails.logger.level = Logger::ERROR if env['PATH_INFO'] =~ %r{^/assets/}
      call_without_quiet_assets(env)
    ensure
      Rails.logger.level = previous_level
    end
    alias_method_chain :call, :quiet_assets
  end
end

Обновлено: теперь работает и для Rails 3.2 (предыдущие попытки исправляют before_dispatch, теперь вместо этого мы собираемся использовать корневую стойку call)

Обновление: правильное решение промежуточного программного обеспечения Rack (вместо хрупкого alias_method_chain) от @macournoyer https://github.com/rails/rails/issues/2639#issuecomment-6591735

54
задан JCm 29 August 2019 в 22:15
поделиться

1 ответ

Тот же объект, который вызывает функцию, передается функции как this параметр.

, Когда объект создается из класса, он содержит только ряд свойств и в объекте нет никакой функции. И функции принадлежат классу. однако, как функция вызвана объектом?

Рассматривают следующий код.

var obj = {
            p1: 'property 1',

            func1 () {
                return this.p1
            },

            func2 (param) {
                return this.p1 + param
            }
    }

И также вызывают функции obj объект

obj.func1 ();
obj.func2 ('A');

, компилятор добавляет this параметр к началу параметров функции. И на самом деле скомпилированные функции следующие.

var obj = {
            p1: 'property 1',

            func1 (this) {
                return this.p1
            },

            func2 (this, param) {
                return this.p1 + param
            }
    }

И скомпилированный вызов функции также изменяется следующим образом.

func1 (obj);
func2 (obj, 'A');
-1
ответ дан 7 November 2019 в 07:56
поделиться
Другие вопросы по тегам:

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