Идентификатор объекта JavaScript [дубликат]

By default, A controller return JSON on spring boot project. But If you want XML format then you can configure this on the pom.xml. For example, you can add this following dependency if you want to return XML data,

<dependency>
   <groupId>com.fasterxml.jackson.dataformat</groupId>
   <artifactId>jackson-dataformat-xml</artifactId>
</dependency>
70
задан Nathan MacInnes 21 April 2014 в 19:12
поделиться

2 ответа

Нет, у объектов нет встроенного идентификатора, хотя его можно добавить, модифицировав прототип объекта. Вот пример, как это можно сделать:

(function() {
    var id = 0;

    function generateId() { return id++; };

    Object.prototype.id = function() {
        var newId = generateId();

        this.id = function() { return newId; };

        return newId;
    };
})();

Тем не менее, в целом модификация прототипа объекта считается очень плохой практикой. Вместо этого я бы порекомендовал присваивать идентификатор объектам вручную по мере необходимости или использовать функцию touch, как это предлагали другие.

42
ответ дан 24 November 2019 в 13:29
поделиться

Использование символов ES6 +.

Используйте экспорт модуля ES6 для Symbol, если предпочтителен уникальный символ, в противном случае используйте Symbo

(function () {
    let id = 0;
    const generateId = () => ++id;

    // export const identifier = Symbol('identifier'); 
    const identifier = Symbol.for('identifier');

    Object.prototype[identifier] = function () {
        const id = generateId();
        this.id = this.id || id;
        return this.id;
    };

})();
0
ответ дан Mohan Ram 4 July 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: