![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
手撕系列
爱码士029
分享代码知识,业务爬山 打羽毛球 自驾跑山
展开
-
手撕内置call / 如何手写内置call
Function.prototype.call = function call(context, ...params) { // this->fn context->obj params->[10,20] //目的:把fn{this}执行,让其this指向obj{context},并且把10/20{params}传递给他,最后把fn执行的结果返回 //额外处理:如果context是原始值类型,是无法设置属性的,此时我们需要把原始值类型变为对象类型 if (.原创 2021-09-01 20:08:24 · 84 阅读 · 0 评论 -
手撕内置new / 手写内置new
/*进阶: 重写内置NEW*/ function Dog(name) { this.namer = name; } Dog.prototype.bark = function() { console.log('wangwang'); } Dog.prototype.sayName = function() { console.log('my name is ' + this.name); } /* .原创 2021-09-01 20:11:05 · 125 阅读 · 0 评论 -
手撕bind怎么写/手写bind
Function.prototype.bind = function bind(context, ...params) { // this->fn context->obj params->[10/20] let self = this; return function proxy() { // this->document return self.call(context, ...params); }; }; // .原创 2021-09-01 20:03:12 · 63 阅读 · 0 评论