首页 > 其他分享 >手写apply

手写apply

时间:2023-08-05 21:33:24浏览次数:28  
标签:function context fangfang args key apply 手写 name


 

目录

前言

导语


前言

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

导语

apply使用

手写apply_参数设置

手写apply_参数设置_02编辑

代码部分

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

手写apply_调用函数_03

标签:function,context,fangfang,args,key,apply,手写,name
From: https://blog.51cto.com/u_14476028/6978255

相关文章

  • 手写bind
     目录前言导语 代码部分前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语手写bind编辑 代码......
  • 前端面试经典手写题
    1、手写PromiseclassPromise2{state="pending";callbacks=[];constructor(fn){fn(this.resolve.bind(this),this.reject.bind(this));}resolve(result){if(this.state!=="pending")return;this.state="......
  • 6.2 手写卷积类
    importtorchfromtorchimportnnfromd2limporttorchasd2lclassConv2D(nn.Module):def__init__(self,kernel_size):super().__init__()self.weight=nn.Parameter(torch.rand(kernel_size))#如kernel_size=(2,2),则随机初始化一个2x2的卷积......
  • 01手写顺序表
    一、简介学习数据结构的第一个程序,手写实现顺序表。实现功能创建表清空表中元素判断表中数据是否为空求表中有效数据长度指定数据元素定位指定位置插入元素释放空间打印顺序表的内容删除指定位置上的元素二、完整代码sqlist.h#ifndef__SQLIST_H#define__SQLIST......
  • 为了成为Java大牛,我决定手写个JVM~
    JVM对我们很多人来说就像个黑盒子,无从下手,但是又是我们JavaCoder不得不去深入研究的一门技术国内玩JVM的大牛很少,知名的就那么几个,而玩好JVM又教好JVM的人更是少之又少。今天给大家介绍其中一位,江湖人送外号道格牙的子牙老师。下面的时间,交给他。哈喽,我就是江湖人送外号[......
  • 9.手写实现智能指针类需要实现哪些函数?
    9.手写实现智能指针类需要实现哪些函数?1.智能指针是一个数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制。它会自动记录SmartPointer<T*>对象的引用计数,一旦T类型对象的引用计数为0,就释放该对象。除了指针对象外,我们还需要一个引用计数的指针设定对象的值,并将......
  • react源码解析手写ReactDom.js和React
    前言大家好我是歌谣今天给大家带来react源码部分的实现创建项目首先npxcreate-react-appxxx降为17"dependencies":{"@testing-library/jest-dom":"^5.11.4","@testing-library/react":"^11.1.0","@testing-library/user-event&......
  • 如果让我手写......
    字符串#include<iostream>#include<cstring>classMyString{private:char*m_data;size_tm_length;public:MyString():m_data(nullptr),m_length(0){}MyString(constchar*str){m_length=strlen(str);m_data=......
  • 通过注册表方式启动和关闭手写输入法(方法适合各种应用)
    求:window系统下,点击输入窗口时,需要自动弹出手写输入法。点击除输入窗口外位置时,需要关闭手写输入法。实现:一、安装手写输入法插件(我选用的是搜狗输入法)这是个什么协议呢,从来没有见过啊,也只是一个a标签就可以调用起来。于是我们需要深入探讨下a标签的协议。a标签协议解读平时在......
  • 《信号分析与处理》期末复习题库整理(题目+手写知识点+答案+期末知识点精细)
    文章目录一、傅里叶变换、s域变换、z域变换(待:整理一些常用以及方程变换)傅里叶变换s域变换z域变换二、试卷一、选择题12345678==9==1011121314151617181920==21==22232425262728二、填空题12==3==567891011121314151617三、计算题12345678==10==111213==14====15====16====17==三、......