Добавление прототипа к литералу объектов JavaScript

Какие-либо проблемы со следующим способом сделать его?

int CharToInt(const char c)
{
    switch (c)
    {
    case '0':
        return 0;
    case '1':
        return 1;
    case '2':
        return 2;
    case '3':
        return 3;
    case '4':
        return 4;
    case '5':
        return 5;
    case '6':
        return 6;
    case '7':
        return 7;
    case '8':
        return 8;
    case '9':
        return 9;
    default:
        return 0;
    }
}
54
задан Tarik 25 December 2014 в 13:28
поделиться

2 ответа

Объект-прототип предназначен для использования в функциях конструктора , в основном функциях, которые будут вызываться с использованием оператора new для создания новых экземпляров объекта.

Функции. в JavaScript - это объекты первого класса , что означает, что вы можете добавлять к ним члены и обращаться с ними так же, как с обычными объектами:

var STORE = {
   item : function() {
  }
};

STORE.item.add = function() { alert('test 123'); };
STORE.item.add();

Типичное использование объекта-прототипа, как я сказал ранее,это когда вы создаете экземпляр объекта, вызывая функцию-конструктор с оператором new, например:

function SomeObject() {} // a constructor function
SomeObject.prototype.someMethod = function () {};

var obj = new SomeObject();

Все экземпляры SomeObject наследуют члены из SomeObject.prototype , потому что к этим членам будет осуществляться доступ через цепочка прототипов.

Каждая функция в JavaScript имеет объект-прототип, потому что нет способа узнать, какие функции предназначены для использования в качестве конструкторов.

80
ответ дан 7 November 2019 в 07:59
поделиться

Вы можете использовать средства восстановления JSON для преобразования вашего JSON в объекты класса во время синтаксического анализа. В черновике EcmaScript 5 принята схема восстановителя JSON2, описанная на http://JSON.org/js.html

var myObject = JSON.parse(myJSONtext, reviver);

Необязательный параметр восстановителя - это функция, которая будет вызываться для каждого ключ и значение на каждом уровне конечный результат. Каждое значение будет заменен на результат оживителя функция. Это можно использовать для реформирования общие объекты в экземпляры псевдоклассы, или преобразовать дату строки в объекты Date.

myData = JSON.parse(text, function (key, value) {
    var type;
    if (value && typeof value === 'object') {
        type = value.type;
        if (typeof type === 'string' && typeof window[type] === 'function') {
            return new (window[type])(value);
        }
    }
    return value;
});
2
ответ дан 7 November 2019 в 07:59
поделиться
Другие вопросы по тегам:

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