Learning JavaScript with MDN (call, apply, bind)
Learning JavaScript with MDN (call, apply, bind)
call, apply, bind

Object.prototype.toString()
检测 js 数据类型
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
Object.prototype.toString({})
// "[object Object]"
Object.prototype.toString([])
// "[object Object]"
Object.prototype.toString(Symbol())
// "[object Object]"
Object.prototype.toString(BigInt(1n))
// "[object Object]"
call, apply, bind
相同点: call, apply, bind 都是改变 this 的指向!
不同点:
- call 会立即执行, 参数列表(arg1, arg2, arg3, ...)
Object.prototype.toString.call([]);
// "[object Array]"
Object.prototype.toString.call(Symbol());
// "[object Symbol]"
Object.prototype.toString.call(BigInt(1n));
// "[object BigInt]"
- apply 会立即执行,参数数组 ([arg1, arg2, arg3, ...])
Object.prototype.toString.apply([]);
// "[object Array]"
Object.prototype.toString.apply(Symbol());
// "[object Symbol]"
Object.prototype.toString.apply(BigInt(1n));
// "[object BigInt]"
- bind 不会立即执行, 需要手动调用
Object.prototype.toString.bind([]);
// ƒ toString() { [native code] }
Object.prototype.toString.bind([])();
"[object Array]"
// "[object Array]"
Object.prototype.toString.bind(Symbol());
// ƒ toString() { [native code] }
Object.prototype.toString.bind(Symbol())();
// "[object Symbol]"
Object.prototype.toString.bind(BigInt(1n));
// ƒ toString() { [native code] }
Object.prototype.toString.bind(BigInt(1n))();
// "[object BigInt]"
refs
https://www.cnblogs.com/xgqfrms/p/9209381.html
https://www.cnblogs.com/xgqfrms/p/13019790.html
https://stackoverflow.com/questions/15455009/javascript-call-apply-vs-bind
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
Learning JavaScript with MDN (call, apply, bind)的更多相关文章
- JavaScript学习(2)call&apply&bind&eval用法
javascript学习(2)call&apply&bind&eval用法 在javascript中存在这样几种特别有用的函数,能方便我们实现各种奇技淫巧.其中,call.bi ...
- Learning JavaScript with MDN & 使用 MDN 学习 JavaScript
Learning JavaScript with MDN & 使用 MDN 学习 JavaScript Learn JavaScript with MDN 和 MDN 一起学习 JavaScr ...
- 别真以为JavaScript中func.call/apply/bind是万能的!
自从学会call/apply/bind这三个方法后我就各种场合各种使用各种得心应手至今还没踩过什么坑,怎么用?说直白点就是我自己的对象没有某个方法但别人有,我就可以通过call/apply/bind去 ...
- 深入浅出:了解JavaScript中的call,apply,bind的差别
在 javascript之 this 关键字详解文章中,谈及了如下内容,做一个简单的回顾: 1.this对象的涵义就是指向当前对象中的属性和方法. 2.this指向的可变 ...
- javascript中的call(),apply(),bind()方法的区别
之前一直迷惑,记不住call(),apply(),bind()的区别.不知道如何使用,一直处于懵懂的状态.直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下. 如果有不全面的地方,后续再 ...
- 理解 JavaScript call()/apply()/bind()
理解 JavaScript this 文章中已经比较全面的分析了 this 在 JavaScript 中的指向问题,用一句话来总结就是:this 的指向一定是在执行时决定的,指向被调用函数的对象.当然 ...
- Javascript中call,apply,bind方法的详解与总结
在 javascript之 this 关键字详解 文章中,谈及了如下内容,做一个简单的回顾: 1.this对象的涵义就是指向当前对象中的属性和方法. 2.this指向的可变性.当在全局作用域时,thi ...
- javascript中call,apply,bind的用法对比分析
这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们. 关于call,apply,bind这三个函数的用法,是学习java ...
- Javascript中call,apply,bind的区别
一.探索call方法原理 Function.prototype.call = function(obj) { // 1.让fn中的this指向obj // eval(this.toString().r ...
随机推荐
- (Oracle)导出表结构
DECLARE cursor t_name is SELECT rank() over(order by a.TABLE_NAME) as xiaolonglong,a.TABLE_NAME FROM ...
- JavaScript this 关键字详解
一.前言 this关键字是JavaScript中最复杂的机制之一.它是一个很特别的关键字,被自动定义在所有函数的作用域中.对于那些没有投入时间学习this机制的JavaScript开发者来说,this ...
- LOJ10092半连通子图
Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u ...
- EasyConnect连接成功后,虚拟ip地位未分配
文章目录 #问题描述: 今天公司做项目,连接上EasyConnect以后,显示连接成功,但是虚拟ip地址未分配,导致无法远程连接数据库,以及svn无法更新项目. #解决办法: 百度网上各种解决办法,没 ...
- Python3爬取猫眼电影信息
Python3爬取猫眼电影信息 import json import requests from requests.exceptions import RequestException import ...
- socket套接字编程(1)——基本函数
TCP交互流程: 服务器:1. 创建socket:2. 绑定socket和端口号:3. 监听端口号:4. 接收来自客户端的连接请求:5. 从socket中读取字符:6. 关闭socket. 客户端:1 ...
- js将金额转成大写金额
function Chinese(){ /* var num= $(dialogStruct.iframe.contentDocument.getElementById("contractA ...
- Kubernetes --(k8s)yml 文件
认识yml文件 yaml文件语法 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 # 表示注释,从这个字符一直到行尾 ...
- Java 复习整理day05
1 package com.it.demo01_oop; 2 3 import java.util.Arrays; 4 5 /* 6 案例: 演示面向过程和面向对象代码的区别 7 8 面向过程编程思想 ...
- Effective Java读书笔记--类和接口
1.使类和成员的可访问性最小化不指定访问级别,就是包私有.protected = 包私有 + 子类一般private不会被访问到,如果实现了Serializable,可能会泄露.反射.final集合或 ...