Обьекты, созданные через "=" и конструктор - в чем отличия?

85
10 февраля 2022, 06:10

)
Почему только у обьекта, созданного через конструктор есть контекст? Какие концептуальные разницы между объектом, созданным через =, и обьектом, созданным через конструктор? example:

    function constructor(firstName, lastName) {
       // this !== window (есть собственный this)
    } 
    const obj = {
        // this === window (нет собственного this)
    }
Answer 1

Второе утверждение ошибочно. В объекте можно указать метод, то есть функцию, которая будет иметь 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

Answer 2

дополню с примером instanceof

function 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

READ ALSO
Функция unity GetContacts(hit) всегда возвращает 0

Функция unity GetContacts(hit) всегда возвращает 0

Обидно что все работало, но я игрался с камерой и физикой и теперь не работаетВот картинки моих нынешних настроек

73
Ошибка в Xamarin.Forms System.ObjectDisposedException in Android.FastRenderers.ImageRenderer

Ошибка в Xamarin.Forms System.ObjectDisposedException in Android.FastRenderers.ImageRenderer

У меня есть ListView со множеством строкВ DataTemplate этого ListView вложен еще один ListView в DataTemplate которого есть изображения которые загружаются из URL

123
Форматированный вывод Version

Форматированный вывод Version

Имеется экземпляр Version, который необходимо приводить к определённому текстовому форматуНапример Version 12

109