Javascript 其中是一个函数';这个值存储在哪里?
我知道可以使用Javascript 其中是一个函数';这个值存储在哪里?,javascript,Javascript,我知道可以使用 function.bind(新值、参数) 但是有没有办法访问绑定值呢?例如: console.log(my_function.boundValue) 换句话说,假设模块提供以下功能: function getACoolFunction () { var someFarAwayFunction = function() {console.log(this.name)} var bound_this_value = {name: "bound this value"}
function.bind(新值、参数)
但是有没有办法访问绑定值呢?例如:
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的绑定值?没有什么可以阻止您这样做:
let my_function = function.bind(new_this_value, arguments);
my_function.boundValue = new_this_value;
从开始,绑定函数是: 包装另一个函数对象的外来对象 它有内部属性包含原始函数,提供
此
和参数。由于它们被明确地提到是内部的,我想说它们不是直接暴露和可访问的
可能包含可以帮助您解决此限制的详细信息。在将参数传递给
.bind()之前,您可以访问新的\u此值
和参数
我想我更感兴趣的是JS引擎如何知道这个值是什么,以及在调试时如何访问它。您是否阅读了规范?“访问它”是什么意思?给定一个函数,你能在不调用函数missingfunction()
atsomeFarAwayFunction
的情况下找到这个值的边界吗当然,但我想知道是否有一种方法可以在不定义自己属性的情况下获得新的这个值,特别是在调试没有编写的对象时