#yyds干货盘点# 手写apply

简介: #yyds干货盘点# 手写apply

前言


我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷


导语


apply使用


图片.png

代码部分

Function.prototype.myApply = function (context, args) {
        //这里默认不传就是给window,也可以用es6给参数设置默认参数
        context = context || window
        args = args ? args : []
        //给context新增一个独一无二的属性以免覆盖原有属性
        const key = Symbol()
        context[key] = this
        //通过隐式绑定的方式调用函数
        const result = context[key](...args)
        //删除添加的属性
        delete context[key]
        //返回函数调用的返回值
        return result
      }
      var name = 'geyao'
      var fangfang = {
        name: 'fangfang',
        fang: function () {
          console.log(this.name)
        },
        fun: function () {
                    console.log(this,"this")
          setTimeout(
            function () {
              this.fang()
            }.myApply(this),
            100
          )
        },
      }
      fangfang.fun() //fangfang



相关文章
面试官: 请你手写一份 Call()源码,看完此篇不用担心!
面试官: 请你手写一份 Call()源码,看完此篇不用担心!
|
10月前
|
前端开发 JavaScript 对象存储
【面试题】面试官为啥总是让我们手写call、apply、bind?
【面试题】面试官为啥总是让我们手写call、apply、bind?
|
10月前
04 # 手写 apply
04 # 手写 apply
73 0
|
前端开发
前端扫盲之手写apply
前端扫盲之手写apply
117 0
前端扫盲之手写apply
|
前端开发
前端扫盲202307手写apply
前端扫盲202307手写apply
88 0
|
前端开发
前端学习笔记202306学习笔记第三十八天-手写apply得实现2
前端学习笔记202306学习笔记第三十八天-手写apply得实现2
63 0
|
前端开发
前端学习笔记202306学习笔记第三十八天-手写apply得实现1
前端学习笔记202306学习笔记第三十八天-手写apply得实现1
73 0
|
前端开发
前端学习笔记202306学习笔记第三十八天-手写apply得实现3
前端学习笔记202306学习笔记第三十八天-手写apply得实现3
69 0
手写系列 # 4:实现 apply 方法
手写系列 # 4:实现 apply 方法
116 0
手写系列 # 4:实现 apply 方法