Javascript: กำหนดวัตถุให้กับตัวแปร [ซ้ำ]

Sep 15 2020

ฉันมีวัตถุที่มีคุณสมบัติบางอย่าง:

var props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
}

ดังนั้นฉันต้องการกำหนดfilterคุณสมบัติของวัตถุนี้ให้กับวัตถุอื่นในระหว่างการประกาศตัวแปร:

var sprite = {
  configs: {
    image: 'pic.png',
    // <- assign `props.filters` right here
  }
}

ดังนั้นฉันต้องการรับวัตถุดังกล่าว:

{
  configs: {
    image: 'pic.png',
    brightness: 0,
    opacity: 1,
  }
}

ฉันสามารถทำได้หลังจากspriteการประกาศตัวแปรเช่นนี้:

Object.assign(sprite.configs, props.filters);

แต่สามารถกำหนดคุณสมบัติของออบเจ็กต์อื่นระหว่างการประกาศตัวแปรได้หรือไม่?

จะสะดวกมากในกรณีที่มีอุปกรณ์ประกอบฉากหลายชิ้นในออบเจ็กต์เดียวและ JS จะอนุญาตให้ใช้การกำหนดดังกล่าวในระหว่างการประกาศตัวแปรเพื่อกำจัดการประมวลผลภายหลังที่ซ้ำซ้อน

คำตอบ

4 Reyno Sep 15 2020 at 15:33

คุณสามารถใช้ตัวดำเนินการกระจายเพื่อ "กระจาย" ค่าของอุปกรณ์ประกอบฉากภายในตัวแปรสไปรต์

const props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
};

const sprite = {
  configs: {
    image: 'pic.png',
    ...props.filters,
  }
};

console.log(sprite);