首页 > 其他分享 >手写bind

手写bind

时间:2023-08-05 21:33:08浏览次数:32  
标签:console log bind args arguments var 手写


 

目录

前言

导语

 代码部分


前言

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

导语

手写bind

手写bind_返回函数

手写bind_返回函数_02编辑

 代码部分

Function.prototype.mybind = function (target) {

      //target:改变返回函数执行时的this指向
      var obj = target || window;
      console.log(arguments,"arguments")
      var args = [].slice.call(arguments, 1); //获取bind时传入的绑定实参
      var args1 = [].slice.call(arguments, 0); //获取bind时传入的绑定实参
      console.log(args,"args")
      console.log(args1,"args1")
      var self = this; //要bind的函数
      console.log(self,"self")
      var _fn = function () {
        var _args = [].slice.call(arguments, 0); //新函数执行时传递的实际参数
        console.log(_args,"_args")
        return self.apply(obj, args.concat(_args));
      }
      return _fn
    }


    var name = 'fangfang';
    var obj = {
      name: 'geyao'
    };

    function fn(a, b, c) {
      console.log(a + b + c + this.name);
      return a + b + c + this.name
    };
    fn.mybind(obj,"我的","老婆","是")(); // 我的老婆是geyao

手写bind_返回函数_03

标签:console,log,bind,args,arguments,var,手写
From: https://blog.51cto.com/u_14476028/6978262

相关文章

  • 前端面试经典手写题
    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......
  • 上位机_WPF系列总结(Binding)
    1、绑定到DataContext,并设置绑定模式,<TextBlockWidth="100"Height="50"Text="{BindingEqid,Mode=OneTime}"/>当应用程序启动或数据上下文更改时,更新绑定目标。此绑定类型适用于以下情况:使用当前状态的快照适合使用的或数......
  • 为了成为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&......
  • JAXB2(Java Architecture for XML Binding)
    JAXB2(JavaArchitectureforXMLBinding)是Java平台上的一个标准API,用于将XML数据和Java对象之间进行相互转换,即实现XML和Java对象之间的数据绑定。解释如下:XML是一种标记语言,常用于在不同系统之间传递数据。XML数据由标签和属性组成,具有良好的可读性和可扩展性......
  • v-bind sync
    V-绑定同步  Vue.js中的v-bind.sync指令用于在父组件和子组件之间创建双向数据绑定。它允许子组件更新从父组件传递下来的prop的值,并在子组件修改父组件时更新父组件中的值。以下是它的工作原理:在父组件中,使用带有修饰符的v-bind指令将prop传递给子......
  • 如果让我手写......
    字符串#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=......