Size: a a a

2019 November 22

BO

Boris Osipov in JS for testing
Alexander Popov
а чего так?
источник

ab

artem belikov in JS for testing
Я не специалист в js, но можно попробовать так дернуть func(this)
источник

m

mkots in JS for testing
Да правильно все. Ты достал объект-функцию из объекта-инстанса, тем самым потеряв контекст. Чтобы вернуть контекст, тебе нужно явно биндить объект-функцию на объект-инстанса
источник

BO

Boris Osipov in JS for testing
где-то там рассказывают почему
источник

m

mkots in JS for testing
artem belikov
Я не специалист в js, но можно попробовать так дернуть func(this)
Это не тот this
источник

ab

artem belikov in JS for testing
а ну ок)
источник

ab

artem belikov in JS for testing
mkots
Это не тот this
func(foo) - тоже не взлетит)?
источник

AP

Alexander Popov in JS for testing
значит когда я именно присваиваю, контекст отваливается...
источник

AP

Alexander Popov in JS for testing
выходит это уже две разные функции
источник

BO

Boris Osipov in JS for testing
клевый языка, да? ❤️
источник

AP

Alexander Popov in JS for testing
шото нежданчик ага
источник

m

mkots in JS for testing
Boris Osipov
клевый языка, да? ❤️
Да так везде можно сделать. Если достал метод из объекта, то он уже не является резидентом объекта
источник

AP

Alexander Popov in JS for testing
я не достал
источник

AP

Alexander Popov in JS for testing
я сделал на него еще одну ссылку
источник

AP

Alexander Popov in JS for testing
две ссылки на одно и тоже
источник

AP

Alexander Popov in JS for testing
источник

AP

Alexander Popov in JS for testing
ну типа
   setScreenshotProvider(browser.screenshot.bind(browser))
работает
источник

AP

Alexander Popov in JS for testing
а
   setScreenshotProvider(browser.screenshot)
нет
источник

ab

artem belikov in JS for testing
Так работает (если не учитывать что foo глобальный объект )
class Foo {
 constructor() {
   this.val = 'foo'
   this.method = function() {console.log(this.val)}
 }
}

const foo = new Foo()
const func = function (){foo.method()}
foo.method()
func()
источник

m

mkots in JS for testing
Функция вызывается в контексте объета не потому что она создана внутри объекта. Она вызывается в контексте объекта, потому что она вызывается как метод  этого объекта obj.func()
источник