手写call方法

javascript 复制代码
 Function.prototype.myCall=function (context,args) {
        console.log(arguments)
        //context 表示call里面的第一个参数也就是需要改变this指向的那个对象。
        //this表示这个方法
        //把这个方法挂到需要改变指向的对象身上调用,相当于把this指向了这个对象身上,从而达到改变this的作用。
        //argument是一个特殊的对象,可以获取方法传入的参数。
        context.fn=this
        let arr = []
        for(let i =1;i<arguments.length;i++){
            console.log(arguments[i])
            
                //arr.push(arguments[i])
                arr.push('arguments[' + i + ']');
           
        }
        console.log(arr)
        console.log(arguments[1])
        eval('context.fn('+arr+')')
        //context.fn();
        delete context.fn

    }


    let person = {
        name:'tom',
        age:22,
        sex:'male',
        sayName:function(){
            console.log(this.name)
        },
        showInfo:function(name,age,sex){
            this.name=name;
            this.age=age;
            this.sex=sex;
            console.log('name:'+this.name+',age:'+this.age+',sex:'+this.sex)
        }
    }

    let person2={
        name:'tony'
    }
    person.showInfo('lily',22,'female')
    person.showInfo.myCall(person2,'john',11,'male') //name:john,age:11,sex:male
相关推荐
无限的鲜花5 小时前
反射(原创推荐)
java·开发语言
yongche_shi6 小时前
ragas官方文档中文版(五十)
开发语言·python·ai·ragas·如何评估和改进 rag 应用
前端之虎陈随易6 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
一路向北he6 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
kyriewen6 小时前
豆包和千问同时关了智能体,我用它们搭的 3 个自动化全废了——迁移方案整理
前端·javascript·ai编程
前端一小卒6 小时前
我用 TypeScript 从零手写了一个 Claude Code,然后发现它的核心只有 30 行
前端·agent
铁皮饭盒7 小时前
用 Bun.cron 定时 7 月 7 日,为啥? 看图1
javascript
AI行业学习7 小时前
Notepad++ 官方下载 + 完整安装 + 全套优化配置(2026最新)
开发语言·人工智能·python·前端框架·html·notepad++
大圣编程8 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
yuhaiqiang8 小时前
随手 vibecoding 的浏览器插件已经 6000 多次下载,聊聊他的产品设计
前端·后端·面试