如何创建具有初始值的javascript对象?

如何创建具有初始值的javascript对象?,javascript,Javascript,例如,我想用json值启动objCar,这些值可以在构造函数中传递,然后我可以调用在objCar构造函数中创建的race函数,这可能吗?当我尝试这样做时,我会收到: 左侧的赋值无效 错误源行:[Parar neste erro] 这=数值 tnx.您编写的函数构造函数完全错误。这应该是正确的: function Car(values) { var _this = this; values = values || {}; // in case the argument is u

例如,我想用json值启动objCar,这些值可以在构造函数中传递,然后我可以调用在objCar构造函数中创建的race函数,这可能吗?当我尝试这样做时,我会收到:

左侧的赋值无效 错误源行:[Parar neste erro] 这=数值


tnx.

您编写的函数构造函数完全错误。这应该是正确的:

function Car(values) {
    var  _this = this;

    values = values || {}; // in case the argument is undefined.

    this.brand = values["brand"] || ""; // empty string for default brand
    this.model = values["model"] || ""; // empty string for default model

    this.race = function() {
        alert('car model: '+ _this.model + ' car brand: ' + _this.brand + ' has joined the race');
    }
}

var car = new Car({'brand':'ford','model':'fiesta'});

car.race();

您只需要将所有属性从值复制到该文件中。您不能重新分配这是什么

这是另一种方法,更像是你想做的, 即使用传入的对象作为此对象

或者还有另一种方式,哦,我多么喜欢JSOO和无数种做同样事情的方式

function Car() {
    this.race = function() {
        alert('car model: ' + this.model + 
              ' car brand: ' + this.brand + ' just joined the race');
    };
    return this;
};

var car = Car.apply({
    brand: 'ford',
    model: 'fiesta'
});
car.race();

我认为这两种方法都不是最好的方法,我宁愿使用原型而不是基于闭包的面向对象方法

tnx的家伙,但问题是我需要这些值直接在对象。。。比如,我可以在对象内部创建一个var来保存作为构造函数参数传递的json。。。但是如何使这个json属性直接位于对象内部呢?我想做一些类似于:car.model的东西,但我不想在构造函数中设置特定的var模型,因为来自json的值将是随机的。。。有可能吗?
function objCar(values) {
    this.race = function() {
        alert('car model: ' + values.model + ' car brand: ' + values.brand + ' was joined the race');
    };
};

var car = new objCar({
    brand: 'ford',
    model: 'fiesta'
});
car.race();
function Car(values) {

    for (var key in values) {
      this[key] = values[key];
    }

    this.race = function() {
        alert('car model: ' + this.model + 
              ' car brand: ' + this.brand + ' just joined the race');
    };
};

var car = new Car({
    brand: 'ford',
    model: 'fiesta'
});
car.race();
function Car() {
    this.race = function() {
        alert('car model: ' + this.model + 
              ' car brand: ' + this.brand + ' just joined the race');
    };
    return this;
};

var car = Car.apply({
    brand: 'ford',
    model: 'fiesta'
});
car.race();
function Car() {
    this.race = function() {
        alert('car model: ' + this.model + 
              ' car brand: ' + this.brand + ' just joined the race');
    };
};

var car = {
    brand: 'ford',
    model: 'fiesta'
};
Car.apply(car);