函数的存储位置在哪里?

时间:2017-02-13 21:21:03

标签: javascript

我知道您可以使用

绑定函数的this值

function.bind(new_this_value, arguments)

但有没有办法访问绑定值?即是这样的:

console.log(my_function.boundValue)

换句话说,假设一个模块提供以下功能:

function getACoolFunction () {
  var someFarAwayFunction = function() {console.log(this.name)}
  var bound_this_value = {name: "bound this value"}
  someFarAwayFunction.bind(bound_this_value)
  return someFarAwayFunction;
}

我在我的代码中有这个:

import {getACoolFunction} from coolModule

var coolFunction = getACoolFunction();
// coolFunction.bound_value

如何在不更改模块的情况下从代码中获取coolFunction的绑定值?

1 个答案:

答案 0 :(得分:1)

没有什么可以阻止你这样做:

let my_function = function.bind(new_this_value, arguments);
my_function.boundValue = new_this_value;

standard开始,绑定函数为:

  

包装另一个功能对象的异国情调对象。

它包含内部属性,包含原始函数,提供this和参数 由于它们被明确提及为 internal ,我会说它们不会直接暴露和访问。

可能this Q/A包含可以帮助您解决此限制的详细信息。