我想实现类似的东西:
一个函数someFunction
有一个方法.lockThis(<object>)
,当第一次被调用时:
var foreverThis = {};
someFunction.lockThis(foreverThis);
// ... or
// someFunction = someFunction.lockThis(foreverThis);
它将将此函数绑定到,<object>
以便该函数的下一次(或任何其他)时间通过 as-function 或 as-method 调用或通过 apply/call 执行 - 它最初将<object>
作为 this 给出。
当然,我可以定义Function.prototype.lockThis
哪个将调用函数 via并将给定对象指定为上下文,但是如果有人也调用它,.apply()/call()
仍然可以替换上下文。someFunction
apply()
有没有办法在 JavaScript 中锁定函数上下文,使其始终提供对象this
而不更改函数本身的代码?