Вне порядка выполнения для повторных назначений? [дублировать]Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Вне порядка выполнения для повторных назначений? [дублировать]

Сообщение Anonymous »

У меня только что был странный момент, когда, я думаю, оптимизация двигателя JS может меня зарвать. Синхронная функция называется «$») < /p>
Это действительно простая настройка со странным поведением; Я хотел бы знать, почему это «неправильно ведет себя», и если его можно избежать, не вступая в уступки того, чего достигает код.$ = изначально обнаженная функция jQuery
[*]testPage = немного HTML, чтобы бросить в jQuery
[*]log = (просто прославленная обертка для console.log )

function testFunc(ev){
log($("body"), $, typeof $);
var old$ = $;
log(typeof $, typeof old$);
// setTimeout(()=>{
log("so far:", typeof $, $);
var $ = (sel)=>old$(sel, old$(testPage));
log("WTF:", typeof $, $);
log($("h1").text());
// }, 10);
}

, результаты:

[*] asi-is: throws " typeerror: $ не функция " в строке 2: log ("" body ") ...
Незнакомьтесь. после < /em> точка сбоя выше, и заставлять вещи происходить позже не должны менять вещи выше. r.fn.init (a, b)} function

функция функции

До сих пор: неопределенная не определенная

wtf: function (sel) => old $ (sel, old $ (testpage))

Пример Domain // html's h1 -natue < /p>

html's h1 -natue Чтобы использовать $ в строке «до сих пор» (например, log («Пока:», Typeof $, $, $ («Body»)); ), это «соответственно» (согласно сообщенному неопределенному s), бросает вызов на вызов функции. Вверху, пытаясь назначить глобально окрашенную $ на локально определенную переменную одинакового имени, она вернулась к тому, чтобы испортить меня , хотя повторное определение происходит в тайм-аут после , бросая в строку 3 с «Typeerr: $ не функция» (даже когда я увеличивает время-аут до 1000 мс, так что я не думаю, что это концепция.function testFunc(ev){
var $ = $;
log($("body"), $, typeof $); // {
log("so far:", typeof $, $, $("body"));
var $ = (sel)=>old$(sel, old$(testPage));
log("WTF:", typeof $, $);
log($("h1").text());
}, 10);
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ssignments
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»