)
Почему только у обьекта, созданного через конструктор есть контекст? Какие концептуальные разницы между объектом, созданным через =, и обьектом, созданным через конструктор?
example:
function constructor(firstName, lastName) {
// this !== window (есть собственный this)
}
const obj = {
// this === window (нет собственного this)
}
Второе утверждение ошибочно. В объекте можно указать метод, то есть функцию, которая будет иметь this, который ссылается на родительский объект.
const obj = {
a: 'local',
method() {
console.log(this)
}
}
obj.method();
К тому же, первое утверждение, тоже частично неправильное. Если мы просто запустим функцию, то this указывает на внешнее окружение, то есть на window. И только если мы используем функцию как конструктор, то можем использовать this в качестве привязки.
Документация очень хорошо с примерами все описывает. И bind, call, apply, и get/set, и многое другое. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/this
instanceoffunction Qwa() {}
const { log } = console
log({} instanceof Object) // true
log(Object.create(null) instanceof Object) // false
log(new Qwa instanceof Object) // true
log(new Qwa instanceof Qwa) // true
const { log } = console
class Animal { }
class Cat extends Animal { }
log(new Cat instanceof Cat ) // true
log(new Cat instanceof Animal) // true
log(new Cat instanceof Object) // true
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости