Mih*_* B. 5 javascript scope bind function
我遇到的情况是,我想知道函数是否已被绑定,以便在使用call
或apply
使用不同的上下文调用该函数时设置警告消息.
function myfn (){ }
/* or */
var myfn = function () {}
var ref = myfn.bind(null);
Run Code Online (Sandbox Code Playgroud)
我检查了Firefox和Chrome控制台中的功能对象,我发现的唯一区别是绑定版本的名称前缀为bound
.
> myfn.name
> "myfn"
> ref.name
> "bound myfn"
Run Code Online (Sandbox Code Playgroud)
这是一个可靠的检查吗?
是否有更多方法可以找到函数是否已绑定?
*注意:在旧的浏览器不感兴趣(例如:<ie10
)
这是一个可靠的检查吗?
不。它只在 ES6 以后有效,但从 ES6 以后它也可能被愚弄,因为.name
s 现在是可写的。
是否有更多方法来查找函数是否已绑定?
绑定函数没有.prototype
属性,但请注意,还有其他函数共享此属性,例如所有箭头函数。
归档时间: |
|
查看次数: |
225 次 |
最近记录: |