加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
03_手写bind.html 794 Bytes
一键复制 编辑 原始数据 按行查看 历史
wangcai 提交于 2023-04-04 16:49 . xx‘
<script>
// bind实现原理
; (function () {
function mlbind(context) {
let bindArgs = Array.prototype.slice.call(arguments, 1);
// this 表示fn this()不OK
let that = this;
function gn() {
let args = Array.prototype.slice.call(arguments);
return that.apply(context, bindArgs.concat(args))
}
return gn;
}
Function.prototype.mlbind = mlbind;
})()
function fn(num1, num2) {
console.log(this);
return num1 + num2;
}
let obj = { name: "码路" }
// 1)改变fn中this的指向
// 2)返回一个绑定this后的函数
// let res = fn.bind(obj, 1)
let res = fn.mlbind(obj, 1)
console.log(res(2));
</script>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化