Справка, “это” смущает меня в JavaScript

Существуют следующие способы достижения этого:

  1. Использовать rem для, например, 2.3 rem
  2. Используйте em для, например. 2.3em
  3. Использовать%, например. 2.3% Кроме того, вы можете использовать: vh, vw, vmax и vmin.

Эти устройства будут автоматизировать в зависимости от ширины и высоты экрана.

25
задан unwind 28 January 2010 в 23:58
поделиться

5 ответов

-

, кажется, способ сделать это, используя существующий драйвер C # следующим образом:

db["collection"].Find(new Document().Append("query", 
new Document()).Append("orderby", 
new Document().Append(name:1).Append(age,-1))); 

Что я был включен в SAM Corder здесь

-121--1236728-

Это не о производительности, речь идет о доступе к собственности конкретного экземпляра объекта: -

x.init()

не будет отображать «тест», если вы не использовали это в функции.

Эффективно, что вышеуказанная линия такая же, как: -

x.init.call(x);

Первый настроек при использовании вызова присваивается это , когда функция выполняется.

Теперь рассмотрим: -

var fn = x.init;  //Note no () so the function itself is assigned to the variable fn
fn();

Теперь вы ничего не получаете в оповещении. Это потому, что вышеизложенное эффективно: -

fn.call(window);

в браузере, размещенном JavaScript. Окно объект является синонимом глобального объекта. Когда функция называется «в RAW», то это по умолчанию для глобального объекта.

Классическая ошибка делает что-то подобное: -

var x = {
   ele: 'test';
   init: function(elem) { 
      elem.onclick = function() { alert(this.ele); }
   }
}
x.init(document.getElementById('myButton'));

Однако это не работает, потому что функция, прикрепленная к событию OnClick, называется браузером, использующим код, как: -

onclick.call(theDOMElement)

, следовательно, когда функция работает Это не то, что вы думаете.

Мое обычное решение этой ситуации: -

var x = {
   ele: 'test';
   init: function(elem) {
      var self = this; 
      elem.onclick = function() { alert(self.ele); }
      elem = null;
   }
}
x.init(document.getElementById('myButton'));

Обратите внимание на Elem = Null IE .

27
ответ дан 28 November 2019 в 21:19
поделиться

Это очень запутанно. Это зависит от того, как вы вызываете функцию. Даг Крокфорд написал хорошую статью в своей книге Javascript, Good Parts . Суть этого в этот превосходный ответ на иначе плохо сформулированный вопрос.

И нет, дело не в производительности.

6
ответ дан Community 28 November 2019 в 21:19
поделиться

Хорошая и поучительная статья по ключевому слову this - это это (не каламбур). Статья может прояснить для вас вещи, я знаю, что это сделал для меня.

Основное правило заключается в том, что ключевое слово this внутри функции всегда относится к владельцу функции, и ключом к пониманию последствий является понимание того, когда функции передаются и когда они копируется . См. Вышеупомянутую статью для примеров.

2
ответ дан Håvard S 28 November 2019 в 21:19
поделиться

Использование

var me = this;

вне

function(){

, тогда вы можете ссылаться на меня внутри функции ()

1
ответ дан 28 November 2019 в 21:19
поделиться

Для меня это помогло много следующих руководств: каждый раз, когда вы видите это думают владелец . Объект, который владеет именем переменного, к которому назначена функция, станет это . Если вы не можете иметь смысл, кому это принадлежит, то это будет окно.

3
ответ дан 28 November 2019 в 21:19
поделиться
Другие вопросы по тегам:

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