call与apply
2018-06-24 01:52:05来源:未知 阅读 ()
众所周知,每个函数都包含两个非继承而来的方法:apply()与call() 方法,他们都可以接收参数,他们的作用都是一样的,都是在特定的作用域里面调用函数,相当于设置函数体内的this对象的值,这也是他们的强大之处,就在于可以扩充函数运行的作用域,下面 就用代码来说明他们的作用,来看两个demo:
demo1:
window.name = "Jack";
var person = {
name:"Tom"
}
function who(){
console.log(this.name);
}
who(); //Jack
person.who = who;
person.who(); //Tom
demo2:
window.name = "Jack";
var person = {
name:"Tom"
}
function who(){
console.log(this.name);
}
who(); //Jack
who.call(this) //this指向全局 Jack
who.call(window) //Jack
who.call(person) //Tom
从两个demo对比来看 ,此时call(apply)的用法就是扩充作用域;
call与apply区别:
call与apply的唯一的不同点就是传参问题了,apply可以接受两个参数,第一个参数指向作用域对象(this),第二个参数可以接收参数数组,也可以是arguments对象;call方法,第一个参数相同,第二个参数后面明确接收每一个参数,例如call(this,person1,person2...)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:小刘同学的第一百零六篇博文
- JavaScript中的apply和call函数详解 2020-01-07
- javascript call方法使用说明 2019-10-08
- call,apply,bind的理解 2019-08-14
- 手写call,apply方法实现 2019-05-22
- js call().apply().bind()的用法 2019-04-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash