Типы объектов в javaScript - PullRequest
0 голосов
/ 23 мая 2018

У меня есть несколько объектов (a, b, c, .. i) в js, созданных, как показано ниже

var a = {x:1};
var b = function(y){this.x = y};
var c = new Object({x:1});
var d = new b(1);
var e = b(1);
var f = (y) => {return {x:y};};
var g = new f(1); // error
var h = f(1);
var i = new a();//error

Пожалуйста, объясните, каковы различия в этих объектах?почему некоторые недействительны?Я ожидаю подробного объяснения, связанного с прототипами в js.

1 Ответ

0 голосов
/ 23 мая 2018

Нет существенной разницы между объектом, возвращаемым для всех создаваемых вами объектов, но способ их создания может отличаться.По другому «новому» ключевому слову вы должны вызвать функцию конструктора:

function NewObject() {
    this.value = 0;
}

Функция конструктора аналогична классу в других языках OO.Конструктор является экземпляром Function a Object, объектом, созданным так:

let x = {};

Является экземпляром Object, но не Function.

...