简体   繁体   English

如何在javascript中将对象分配给类属性

[英]How to assign an object to a class property in javascript

Create a class called Vending Machine (VM) that returns an instance of a vending machine.创建一个名为 Vending Machine (VM) 的类,它返回一个自动售货机的实例。 The Vending Machine instance contains an inventory property which is an object that holds the name of inventory items and the total amount of stock of each item. Vending Machine 实例包含一个inventory 属性,它是一个对象,其中包含库存物品的名称和每个物品的库存总量。

  drinkInventory = {
      1: { name: 'Sunny Delight', stock: 5 },
      2: { name: 'Diet Soda', stock: 3 },
      3: { name: 'Bottled Water', stock: 4 },
    };

class VM {
  constructor(obj) {
    this.iventory = Object.assign(this, obj);
  }
}

I'm trying to pass in drinkInventory我正在尝试传入drinkInventory

the more simple is this.iventory = JSON.parse(JSON.stringify(obj))更简单的是this.iventory = JSON.parse(JSON.stringify(obj))

 const drinkInventory= { 1: { name: 'Sunny Delight', stock: 5 } , 2: { name: 'Diet Soda', stock: 3 } , 3: { name: 'Bottled Water', stock: 4 } }; class VM { constructor(obj) { this.iventory = JSON.parse(JSON.stringify(obj)) } getStock(key) { return this.iventory[key].stock } } let bob = new VM(drinkInventory); drinkInventory['2'].stock = 50; console.log( 'bob stock 2 =', bob.getStock(2) );

You can also use Spread syntax => https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax您还可以使用 Spread 语法 => https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

 const drinkInventory= { 1: { name: 'Sunny Delight', stock: 5 } , 2: { name: 'Diet Soda', stock: 3 } , 3: { name: 'Bottled Water', stock: 4 } }; class VM { constructor(obj) { this.iventory = { ...obj }; // then repeat copy for first level of object entanglement for (let elm in obj ) { this.iventory[elm] = { ...obj[elm] } } } getStock(key) { return this.iventory[key].stock } } let bob = new VM(drinkInventory); drinkInventory['2'].stock = 50; console.log( 'bob stock 2 =', bob.getStock(2) )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将对象中的属性分配给javascript中同一对象中某个属性的值? - How to assign a property in object to the value of some property in same object in javascript? Object 分配嵌套属性 Javascript - Object Assign Nested Property Javascript JavaScript将函数分配给对象属性 - JavaScript assign function to object property 如何检查对象属性是否存在,并有条件地分配默认值(在JavaScript中) - How to check if an object property exists, and conditionally assign default value (in JavaScript) 如何在 JavaScript ES6 中使用数组解构并分配给对象属性 - How to use array destructuring and assign to an object property in JavaScript ES6 如何使用JavaScript在嵌套对象数组中按属性分配值 - How to assign values by property in nested object array using javascript JavaScript杂技:如何将对象文字分配给评估属性? - JavaScript acrobatics: How to assign an object literal to an eval-uated property? 如何将函数分配给 Javascript 对象的属性? - How do I assign a function to the property of a Javascript object? 如何在打字稿/ javascript中将异步常量分配给对象的属性 - How to assign async const to object's property in typescript / javascript 如何获取javascript类对象的属性值 - How to obtain the property value of a javascript class object
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM