Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

สร้างอ็อบเจ็กต์จากอ็อบเจ็กต์อีกสองตัวใน JavaScript

สมมติว่าเรามีอ็อบเจ็กต์ JavaScript สองตัวที่กำหนดดังนี้:

const a = {
  a: 1,
  af: function() { console.log(this.a) },
};
const b = {
  b: 2,
  bf: function() { console.log(this.b) },
};

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอ็อบเจ็กต์สองตัวดังกล่าว สร้างอ็อบเจ็กต์อีกตัวหนึ่งที่จะได้รับคุณสมบัติของ a และ b เช่นนี้:

const output = {
  a: 1,
  af: function() { console.log(this.a) },
  b: 2,
  bf: function() { console.log(this.b) },
}

สังเกตว่า a และ b ต้องคงที่เดิม

ตัวอย่างโค้ด

โค้ดสำหรับทำสิ่งนี้คือ:

const a = {
  a: 1,
  af: function() { console.log(this.a) },
};
const b = {
  b: 2,
  bf: function() { console.log(this.b) },
};
const extend = function(){
  let i, j, x, res=(arguments[0] || {});
  for (i = 1; i < arguments.length; i++) {
    const x = arguments[i];
    for (j in x) {
      if (x.hasOwnProperty(j)) {
        res[j] = x[j];
      }
    }
  }
  return res;
};
const c = extend({}, a, b);
console.log(c);

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

{ a: 1, af: [Function: af], b: 2, bf: [Function: bf] }