Size: a a a

JavaScript — русскоговорящее сообщество

2020 October 20

@.

@Dragos . in JavaScript — русскоговорящее сообщество
у меня по какой то причине не подходит apiKey
источник

@.

@Dragos . in JavaScript — русскоговорящее сообщество
Похоже нужно с другого сайта тащить
источник

@.

@Dragos . in JavaScript — русскоговорящее сообщество
apiKey не принимает  именно для запроса на несколько дней. На одни сутки выдает
источник

in JavaScript — русскоговорящее сообщество
@Dragos .
у меня по какой то причине не подходит apiKey
daily  api платное.
источник

S🛸

Sergey 🛸 in JavaScript — русскоговорящее сообщество
Undisputed
Народ нужна помощь - есть 4 range input (что то вроде конструктора) у них должно быть общее максимальное значение 100%. Если общее значение меньше 100, то 4-й range получает недостающие значения, а больше 100 уменьшать значения начиная с 4 - 1-й инпут.  Подскажите, как решить.
b = 100 - a
c = 100- a - b
d = 100-a-b-c
источник

AM

Alexey Markovski in JavaScript — русскоговорящее сообщество
Всем привет. Развернул приложение на локальном сервере и стала пропадать кнопка после первого нажатия. Также не видно созданные карточки. Хотя все кнопки на картах работают( если угадать, куда тыкнкуть ). Когда открывал index.html просто в браузере, все работало. Помогите пожалуйста
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
Добрый вечер! Есть код:
class Test {
   getVal() {
       return 22;
   }

   checkMethod = () => {
       console.log(this.getVal());
   }
}

let tt = new Test();

let handler = tt.checkMethod;

handler();

Не понятен момент: если checkMethod -- не стрелочная функция, а обычный метод, то this == undefined. Что логично. Но почему всё работает в этом варианте? У стрелочных функций нет своего this, значит this берется из внешнего scope. Внешний scope здесь это класс... или что? Откуда this берется?
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
конетекст this берется из вызова
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
Это да. Вызов тут такой: handler(). Но тем не менее this указывает на экземпляр класса каким-то образом. Почему?
источник

R

Ruslan in JavaScript — русскоговорящее сообщество
Unknown T.
Это да. Вызов тут такой: handler(). Но тем не менее this указывает на экземпляр класса каким-то образом. Почему?
This указывает на обьект, который вызывает метод, если не ошибаюсь
источник
2020 October 21

UT

Unknown T. in JavaScript — русскоговорящее сообщество
Совершенно верно, но здесь этого объекта нет. Вызов идет просто как handler()
источник

R

Ruslan in JavaScript — русскоговорящее сообщество
Unknown T.
Совершенно верно, но здесь этого объекта нет. Вызов идет просто как handler()
Есть, tt же обьект

let handler = tt.checkMethod;
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
Это уже не имеет значения, привязка this идет именно в момент вызова
Пруф -- если checkMethod -- не стрелочная функция, тогда this это undefined. Это значит, что в случае стрелочной функции this берется из внешнего окружения. Вопрос в том, что есть это внешнее окружение
источник

in JavaScript — русскоговорящее сообщество
Unknown T.
Добрый вечер! Есть код:
class Test {
   getVal() {
       return 22;
   }

   checkMethod = () => {
       console.log(this.getVal());
   }
}

let tt = new Test();

let handler = tt.checkMethod;

handler();

Не понятен момент: если checkMethod -- не стрелочная функция, а обычный метод, то this == undefined. Что логично. Но почему всё работает в этом варианте? У стрелочных функций нет своего this, значит this берется из внешнего scope. Внешний scope здесь это класс... или что? Откуда this берется?
У тебя же код эквивалентнет вот этому
class Test {
   getVal() {
       return 22;
   }
   constructor(){
      this.checkMethod = () => {
          console.log(this.getVal());
     }
   }
}


Так понятнее тебе, что происходит?
источник

in JavaScript — русскоговорящее сообщество
Чтобы было то, чего ты хотел добиться, когда оно "не работает", ты писать должен как-то так
class Test {
   getVal() {
       return 22;
   }
}

Test.prototype.checkMethod = () => {
       console.log(this.getVal());
   }
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
У тебя же код эквивалентнет вот этому
class Test {
   getVal() {
       return 22;
   }
   constructor(){
      this.checkMethod = () => {
          console.log(this.getVal());
     }
   }
}


Так понятнее тебе, что происходит?
В конструкторе this привязан к только что созданному объекту... Да, теперь понятно, спасибо большое!
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
Чтобы было то, чего ты хотел добиться, когда оно "не работает", ты писать должен как-то так
class Test {
   getVal() {
       return 22;
   }
}

Test.prototype.checkMethod = () => {
       console.log(this.getVal());
   }
Ну да, запустил, тут this это undefined. Блин, странно, я думал, что задание методов в конструкторе и через прототип эквивалентны
источник

in JavaScript — русскоговорящее сообщество
Unknown T.
Ну да, запустил, тут this это undefined. Блин, странно, я думал, что задание методов в конструкторе и через прототип эквивалентны
Методы которые ты прописываешь внутри class{} - это методы прототипа (и сеттеры\геттеры). А проперти, которые ты прописываешь внутри class{} - инициализируются у каждого инстанса,в  прототипе их нет. В твоем коде checkMethod у тебя проперти, а не метод.
источник

UT

Unknown T. in JavaScript — русскоговорящее сообщество
То есть этот код эквивалентен коду выше, где прототип?
class Test {
   getVal() {
       return 22;
   }
   checkMethod() {...}
}
источник

in JavaScript — русскоговорящее сообщество
Вот если ты сделаешь вот так, например, то поведение тоже будет, такое, какое ты хотел изначально
let m = () => {
       console.log(this.getVal());
   }
class Test {
   getVal() {
       return 22;
   }

   checkMethod = m
}
источник