Как я могу отправить контекст в этом объекте? - PullRequest
0 голосов
/ 30 октября 2018

Например, у меня есть простой код:

let arrayOfObjects = [{
  arrays: [arraysFunction("array object 1", "some url", () => {
    console.log(this);  // it should return {name: "array object 1", url: "some url", callback: fn}
  }])
}];


function arraysFunction(name, url, callback) {
  return {name, url, callback}
}

Я бы хотел иметь здесь мой объект массива в этом Как я могу сделать это с (применить, позвонить, связать)?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Чтобы использовать все / применить, просто используйте следующее

let object = {
  arrays: [arraysFunction("array object 1", "some url", function(){
    console.log(this);
  })]
};


function arraysFunction(name, url, callback) {
  return callback.apply({name, url, callback});
}
0 голосов
/ 30 октября 2018
let object = {
  arrays: [arraysFunction("array object 1", "some url", function() {
    console.log(this);  // it should return {name: "array object 1", url: "some url", callback: fn}
  }]
};

function arraysFunction(name, url, callback) {
  callback = callback.bind({name, url, callback});
  return {name, url, callback};
}

единственная проблема в том, что возвращаемый обратный вызов не будет таким же, как в этом (=== не будет работать).

...