ex06-08-6

ソース

const bruce = { 名前: "ブルース" };
const madeline = { 名前: "マデライン" };

function update(birthYear, occupation) {
  this.生年 = birthYear;
  this.職業 = occupation;
}

const updateBruce = update.bind(bruce); /*updateBruceを使うとthisはbruceに束縛される*/


console.log(bruce); // { '名前': 'ブルース' }
updateBruce(1904, "俳優");
console.log(bruce); // { '名前': 'ブルース', '生年': 1904, '職業': '俳優' }

console.log(madeline); // { '名前': 'マデライン' }
updateBruce.call(madeline, 1274, "王様"); /* madelineに束縛しようとしても... */
console.log(madeline); // { '名前': 'マデライン' }     (madelineは不変)
console.log(bruce); // { '名前': 'ブルース', '生年': 1274, '職業': '王様' }
                    /* ↑ bruceが変わってしまう */