【问题标题】:How to assign numerous objects with identical properties in Javascript如何在Javascript中分配具有相同属性的多个对象
【发布时间】:2019-09-25 15:09:20
【问题描述】:

如何在 Javascript 中以相同的方法创建具有相同属性的多个对象?

我熟悉如何在 Javascript 中创建对象:

var myCar = new Object(); 
myCar.make = 'ford';
myCar.model = 'mustang';
myCar.year = 1969;

但是如果我想将一个数组分配给一个对象并让所有值都具有相同的属性怎么办?

Arr = [1,2];
Arr[i].value === Arr[i]
Arr[j].value === Arr[j]
Arr[i].value === Arr[j].value
!Arr[i].hasOwnProperty('value')
!Arr[j].hasOwnProperty('value')

其中的值方法是相同的,不是对象独有的

object1.hasOwnProperty('value'); //Evaluates to `false`

我习惯用 Python 编程,所以我的第一个猜测是创建一个字典并将数组动态分配给 values,但我不确定如何在 Javascript 对象中使用 properties。

编辑:当我打算使用“===”运算符时,错误地包含了“==”运算符。

【问题讨论】:

  • 好吧,您的== 是评估,而不是分配。但是为什么要在数字上设置属性value?

标签: javascript arrays object properties


【解决方案1】:

我不知道这是否是您要求的,但您可以通过两种方式创建自己的对象

function Car (make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

// you can also add methods using the object's protoype
Car.prototype.isNissan() {
    return this.make == 'Nissan';
}

在现代语法中,您可以创建类

class Car {
    constructor(make, model, year) {
        this.make = make;
        this.model = model;
        this.year = year;
    }

    methodName() {
        // method body
    }
}

然后像这样在你的代码中使用它

let myCar = new Car('Nissan', 'some model', 2018);

【讨论】:

    【解决方案2】:

    您需要这样做 - 通过创建一个对象。还要使用赋值运算符=而不是比较运算符==:

    let Arr = [1,2];
    let i = 0;
    let j = 1;
    Arr[i] = { value: Arr[i] };
    Arr[j] = { value: Arr[j] };
    console.log(Arr);
    .as-console-wrapper { max-height: 100% !important; top: auto; }

    【讨论】:

    • 我的意思是使用 '===' 运算符而不是 '=='
    猜你喜欢
    • 2018-10-24
    • 2017-02-27
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多