首页 > 其他分享 >call方法,apply方法,和arguments对象

call方法,apply方法,和arguments对象

时间:2024-01-26 12:33:05浏览次数:27  
标签:info console name age call arguments apply log

//1.call方法
// 2.apply方法
// 3.arguments对象


function add(a, b){
    console.log(a + b);
}

add(1, 2);
// call方法第一个参数是this指针,即调用者,第二个参数开始,就是原函数的实际参数
add.call(null, 10, 20);
// apply方法第一个参数是this指针,即调用者,第二个参数是一个数组,把实际参数打包放在数组里
add.apply(null, [100, 200]);

function info(hight, weight){
    console.log(`${hight}:${weight}`);
    // console.log(`${name}:${age}`);
    console.log(`${this.name}:${this.age}`);
}

name = 'zhangsan';
age = 20;
// info();  // console.log(`${name}:${age}`);  res为  undefined:undefined
info();  // console.log(`${this.name}:${this.age}`);  res为  zhangsan:20

let user = {
    name: 'lisi',
    age: 30
}
// info.call(user);  // console.log(`${this.name}:${this.age}`);  res为  lisi:30
// info.apply(user);  // console.log(`${this.name}:${this.age}`);  res为  lisi:30


info.call(user,160, 50);
info.apply(user, [160, 50]);


// 3.arguments对象   arguments 类似于一个类数组对象:// 当函数参数不确定时,使用 apply 和 arguments 配合使用。
function test(){
    let user = {
    name: 'lisi',
    age: 30
    }
    info.apply(user, arguments);
}

test(160, 50);

标签:info,console,name,age,call,arguments,apply,log
From: https://www.cnblogs.com/code3/p/17989075

相关文章

  • 对于push,pop,call,leave,ret的理解
    push指令比如pushebp就是把ebp的值放在esp所指的地方,然后esp-4(32位,以下均为32位)。pop指令popebp就是把esp所指的地方的值给ebp,然后esp+4call指令call函数的时候,把eip的下一行存到esp所指的位置,然后esp-4leave指令leave指令可以等价于movesp,ebp;popebpret指令等价于p......
  • ERROR:Only one ConfirmCallback is supported by each RabbitTemplate] with root cau
     错误:OnlyoneConfirmCallbackissupportedbyeachRabbitTemplate]withrootcause 原因:因为Spring的Bean默认都是单例;而RabbitTemplate对象同样支持一个回调。 解决:使用@Scope("prototype")可通知Spring将被注解的Bean变为多例。代码: //改Ra......
  • [MIT 6.S081] Lab: system calls
    Lab:systemcalls前言这次实验是实现内核中的两个syscall:trace和sysinfo。回顾一下第三节课,用户态的进程想要执行某个系统调用,例如exex(init,argv),首先会将init和argv的地址分别存放在a0和a1寄存器中,然后a7存放所要调用的系统调用,最后执行ecall。之后要结......
  • javascript中apply的用法
    javascript中apply的用法欧方2023-03-3118:30江苏在JavaScript中,apply方法和call方法类似,都是用于调用一个函数或方法,不同之处在于apply方法接受一个参数数组作为函数的参数列表。apply方法的语法如下:function.apply(thisArg,[argsArray])其中,t......
  • Verdi信号平移+研发管理体系+malloc和calloc函数区别+使用__FILE__只打印文件名+使用i
    Verdi信号平移信号左移是将光标移动在双引号以内的信号名左边,然后先输入数字,可以带上单位,如[ns|n]、[ps|p],然后按<<-按键。https://blog.csdn.net/qq_40268672/article/details/132915499信号右移信号右移是数字在右边,信号在左边,用右移符号,其它不变。研发管理体系https://......
  • 像 Google SRE 一样 OnCall
    在GoogleSRE的著作《Google运维解密》(原作名:SiteReliabilityEngineering:HowGoogleRunsProductionSystems)中,GoogleSRE的关键成员们几乎不惜用了三个章节的篇幅描述了在Google他们是如何OnCall的。GoogleSRE实践中,有一个广为人知的理念:减少琐事,用软件工程的方......
  • Hive报错:Call From hadoop01/172.23.238.2 to hadoop01:10020 failed on connection e
    问题描述在阿里云服务器上安装的Hadoop和Hive,刚开始关闭了防火墙。但是由于服务器被被黑客安装挖矿程序,所以开启了防火墙。但是即使开启了所有可能的端口,但是在向Hive中插入数据时,依然报错提示:CallFromhadoop01/172.23.238.2tohadoop01:10020failedonconnectionexception......
  • Js(Javascript)的apply call 和bind区别
    ​ apply、call和bind是用于调用函数的三种不同方式,它们的主要区别在于函数调用时的上下文(this关键字)以及参数传递的方式。call和apply是用于立即调用函数并设置this上下文的方法,它们的主要区别在于参数传递的方式。bind不会立即执行函数,而是创建一个新的函数,将this......
  • C# .net中PropertyDescriptor的使用和BindingList的ApplySort排序
    找了好多资料都是java中PropertyDescriptor的使用,至于C#中的都抄袭别人的,又讲不清楚怎么用。官方文档也没不会手把手教你怎么用,经过一下午的研究,结果如下1、找到PropertyDescriptor同一dll下的,使用TypeDescriptor反射出属性的PropertyDescriptorCollection,从这里拿出对应属性的P......
  • npm ERR! code ENOENT npm ERR! syscall open npm ERR! path C:\Users\shuzi\Des
    打开一个新的项目,因为当前项目文件夹下没有npm,"dev":"npmrunstart:dev",所以所以没有展示对应的运行图,如下图: 打开一个新的前端项目,执行npminstall,报错如图:WindowsPowerShell版权所有(C)MicrosoftCorporation。保留所有权利。安装最新的PowerShell,了解新功能和改进......