Javascript 在JSON块中声明对象及其原型

Javascript 在JSON块中声明对象及其原型,javascript,json,namespaces,prototype,Javascript,Json,Namespaces,Prototype,我想在Javascript中伪造一个名称空间。这可以通过以下方式完成: var cars = {}; cars.car = function() { ... } cars.car.prototype = { drive: function() { ... } } 很好。但是,我的问题是,我是否可以直接用JSON填充整个名称空间,如下所示: var cars = { car: function() { ... },

我想在Javascript中伪造一个名称空间。这可以通过以下方式完成:

var cars = {};
cars.car = function() {
    ...
}
cars.car.prototype = {
    drive: function() {
        ...
    }
}
很好。但是,我的问题是,我是否可以直接用JSON填充整个名称空间,如下所示:

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

那不行。我可以在car()函数中声明car的原型吗?或者有其他方法解决这个问题吗?

马上,您需要在JSON对象(JavaScript对象文本)中使用:(属性赋值运算符)而不是=(赋值运算符)。也不能在对象文字中的属性赋值左侧使用属性访问器(.or[])


我认为在JavaScript中至少需要两条语句来(1)声明函数表达式,以及(2)分配其原型。这将阻止您执行所描述的操作(“直接用JSON填充整个名称空间).我不知道你为什么要这么做--运行两条JavaScript语句在大多数情况下都是可以的。

哦,我只是键入了这条语句,犯了一个错误,抱歉。编辑了它。嗯,考虑一下你的答案,这就是Clojure中的工作方式(一个表达式用于名称空间,一个函数),所以我想这很好。我的第一个例子是人们通常如何做的吗?第一个例子是我将如何做。不要忘记函数表达式赋值后的分号。:)