【问题标题】:How can i send context in this object?我如何在这个对象中发送上下文?
【发布时间】:2018-10-30 12:41:55
【问题描述】:

例如我有简单的代码:

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}
}

我希望在这里有我的数组对象 我怎样才能使用(应用,调用,绑定)?

【问题讨论】:

    标签: javascript call bind apply


    【解决方案1】:

    要使用全部/应用,只需使用以下内容

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

    【讨论】:

      【解决方案2】:
      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};
      }
      

      唯一的问题是返回的回调与这里的回调不同(=== 不起作用)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 2016-07-12
        • 2017-07-01
        • 1970-01-01
        • 2014-10-05
        • 1970-01-01
        相关资源
        最近更新 更多