Как создавать объекты в JavaScript - PullRequest
0 голосов
/ 22 июня 2019

Я хочу создать объекты со свойствами:

{
type,
geometry: {
  type,
  coordinates;
}
}

Я пытался создать его с помощью конструктора:

function element(x, u) {
    this.type = 'type';
    this.geometry.type = 'type';
    this.geometry.coordinates = [x, y];
}

На самом деле, я не могу так поступить.

Как мне создать эти объекты надлежащим образом?

Ответы [ 4 ]

2 голосов
/ 22 июня 2019

Ваш код содержит опечатку (u -> y);кроме того, вы не можете назначить this.geometry.type, если this.geometry не определено.

function element(x, y) {
    this.type = 'type';
    this.geometry = {};
    this.geometry.type = 'type';
    this.geometry.coordinates = [x, y];
}

Также рассмотрите возможность просмотра class es.

0 голосов
/ 22 июня 2019

Вы можете использовать некоторые Object API, предоставляемые JS рекурсивно, для создания и добавления объектов к любому другому объекту, например -

Object.defineProperties()    
Object.defineProperty()
Object.assign()
Object.create()
.....
.....
0 голосов
/ 22 июня 2019

Если вы хотите создать объект в стиле конструктора, вы можете сделать что-то вроде этого.

function element(x, y, type) {
  this.type = 'type';
  this.geometry = new Geometry();

  function Geometry() {
    this.coordinates = [x, y];
    this.type = type;
  }
}
var el = new element(1, 2, 'mytype');
console.log(el);
0 голосов
/ 22 июня 2019

Для предоставленной вами структуры объекта это можно сделать так просто:

var yourNewObject = {
    type: 'typeValue',
    geometry: {
      type: 'geometryTypeValue',
      coordinates 'coordinatesValue';
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...