bind(),call(), apply()方法的区别是什么?
2024-08-31 05:49:07
bind(),call(), apply()方法的区别是什么?
共同点:改变this指向,任何调用都不在起作用
bind() 改变this的指向,不会调用函数,返回一个新的函数
var o ={a:'abc'};
var fn1 = fn.bind(o);//this指向o 相当o.fn
fn1();//
call( ) 改变this指向并调用函数---判断数据类型
var arr = [1,2,4]
var str = '1231';
console.log(Object.prototype.toString.call(arr));//返回Array数据类型
console.log(Object.prototype.toString.call(str));返回String数据类型
apply() 改变this指向并调用函数,后面的参数是以数组展示
//求一数组中的最大值
var arr = [2,13,30,1,4];
console.log(Math.max.apply(null,arr));//利用apply()可以把数组展开单独传参
console.log(Math.max.apply(Math,arr));
//把数组中的元素一行展示
console.log.apply(console,arr);//指向可以是null,主要是为了把数组展开传给console
最新文章
- iOS -初识UIKit
- js数组键入值push和 arr[]i]区别
- SQL Server:统计数据库中每张表的大小
- 使用事务操作SQLite数据库
- 人生的抉择—aspx、ashx、asmx文件处理请求效率比较
- 【BZOJ1833】【ZJOI2010】数字计数 数位DP
- swift3.0基础语法(2)
- Python IDLE 运行错误:IDLE's subprocess didn't make connection. --已解决(原创)!
- Redis几个认识误区
- QQSpamerUpdate
- 为什么PHP(CLI)同一个错误信息会打印两次?
- Unity3d学习 基础-关于MonoBehaviour的生命周期
- linux中重定向的用法
- pt-query-digest
- ASP.NET Core 2.0 : 四. _Layout与_ViewStart
- Codeforces Round #508 (Div. 2) C D
- 廖雪峰JavaScript学习笔记(基础及数据类型、变量)
- YII2十三大特性
- PYTHON-模块 sys os random shutil-练习
- qt之qmake