本文主要是介绍前端 P5 最基本应该掌握的代码实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前景
疫情无情人有情,在去年经历互联网一系列的风波之后,我相信大家有很多的小伙伴想在今年金三银四的面试季中为自己的未来找一个好一点的公司。那么今天我们来讲解一下身为 P5 工程师需要知道的一些原理及其如何亲自手写出它的实现过程,有可能我们日常开发业务的时候用不上这些自己写的方法,但是我们我们对原理一无所知,那么在面试的时候一旦被深挖那么可能离自己心念的公司就会又远一步。
模式 call
- 第一个参数为 null或者 undefined 时,this 指向全局对象 window,值为原始值的指向改原始值的自动包装对象,如 String、number、boolean
- 为了避免函数名与上下问(context)的属性发生冲突,使用 Symbol 类型作为唯一值
- 将函数作为传入的上下文(context)属性执行
- 函数执行完后删除改属性
- 返回执行结果
Function.prototype.myCall = function(context,...args){context = (context ?? window) || new Object(context);const key = Symbol();context[key] = this;const result = context[key](...args);delete context[key];return result;
}
模式 apply
- 前部分与call一样
- 第二个参数可以不传,但类型必须为数组或者类数组
Function.prototype.myApply = function(context) {cont
这篇关于前端 P5 最基本应该掌握的代码实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!