Объявите объект и его прототип в блоке JSON - PullRequest
2 голосов
/ 21 октября 2010

Я хотел бы подделать пространство имен в Javascript. Это можно сделать следующим образом:

var cars = {};
cars.car = function() {
    ...
}
cars.car.prototype = {
    drive: function() {
        ...
    }
}

Работает нормально. Мой вопрос, однако, заключается в том, могу ли я напрямую заполнить все пространство имен JSON, например:

var cars = {
    car: function() {
        ...
    },
    car.prototype: {
        drive: function() {
            ...
        }
    }
}

Это не работает. Могу ли я как-то объявить прототип автомобиля внутри функции car ()? Или есть другой способ решить эту проблему?

1 Ответ

1 голос
/ 21 октября 2010

Сразу же вам нужно использовать: («оператор присваивания свойства») вместо = («оператор присваивания») в объекте JSON (литерал объекта JavaScript).Вы также не можете использовать средство доступа к свойству (. Или []) слева от присваивания свойства в литерале объекта.

Я думаю, что вам нужно как минимум два оператора в JavaScript для того, чтобы оба (1) объявиливыражение функции, и (2) назначить его прототип.Это лишит вас возможности делать то, что вы описываете («непосредственно заполняете все пространство имен с помощью JSON). Я не уверен, почему вы пытаетесь это сделать - выполнение двух операторов JavaScript подходит для большинства целей.

...