js call(),apply(),对象冒充,改变变量作用域
2024-09-30 22:02:08
1.apply();
function box(n1,n2){
return n1+n2;
}
function pox(n1,n2){
alert(box.apply(this,[n1,n2])); //this指window下全局属性
//这里没有返回值,没有运算,通过冒充box里的运算来执行
}
pox(,); //
注:如果参数过多,冒充对象传参的时候可以写成arguments
function box(n1,n2){
return n1+n2;
} function pox1(n1,n2){
alert(box.apply(this,arguments));
}
pox1(,); //得到40
2.call()
function box(n1,n2){
return n1+n2;
} //call和apply只是传参形式不同,其他都一样
function pox2(n1,n2){
alert(box.call(this,n1,n2));
}
pox2(,); //
3.call()和apply()最大的好处,就是对象不需要与方法发生任何关联.对象和方法不会有多余的关联操作,对程序的维护提供便利
最新文章
- centos7 解决ftp和apache运行目录权限冲突问题
- 使用my exclipse对数据库进行操作(4)
- 2. Swift元组|可选值|断言
- Python - 属性简介";__name__";
- 可访问性级别的C# 修饰符
- 使用AlarmManager定时更换壁纸----之一
- Windows Server 2008 计划任务配置(任务计划程序)每分钟执行BAT
- Python新手学习基础之循环结构——For语句
- 接口(三)——JAVA的多重继承
- Delphi通过GetFileVersionInfo和VerQueryValue等API函数取得详细EXE信息
- 全站 HTTPS
- cmd中关闭windows2008错误弹窗
- java中集合的增删改操作及遍历总结
- mongoDB连接数据库
- react使用setstate注意的两点
- dropwizard使用cors支持跨域浏览器取不到自定义header问题
- CVE-2018-15688 systemd dhcp6组件越界写漏洞分析
- JAVA对于程序的运行的一种解说
- 如何使用g++编译调用dll的c++代码
- autoit v3安装