call、apply、bind 区别
https://blog.csdn.net/u010176097/article/details/80348447 (更容易理解的方法)
1.为什么要用 call 、apply?
为了 改变方法里面的属性而不去改变原来的方法
function fruits() {} fruits.prototype = {
color: "red",
say: function() {
console.log("My color is " + this.color);
}
} var apple = new fruits;
apple.say(); //My color is red banana = { color: "yellow"
}
} apple.say.call(banana); //My color is yellow
a
apple.say.apply(banana); //My color is yellow
2.call 与apply 区别
1)call 参数固定 apply 参数不固定 apply 参数是放在数组里面的
2)call 可以将伪数组转换为真正的数组
例如一个例子:
function log(){
var args = Array.prototype.slice.call(arguments);
args.unshift('(app)');
console.log.apply(console, args);
};
log("hello world"); //(app)hello world
3) bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。
function show(sex){
console.log("普通函数"+sex);
}
var person={
name:"aa",
age:14
};
show.call(person,"男");
show.apply(person,["女"]);
//对于bind来说,用法更加的灵活
show.bind(person,"不明")(
);
// var ss=show.bind(person,"不明");
// ss();
call、apply、bind 区别的更多相关文章
- call apply bind 区别?
call apply bind 区别? 例:定义一个计算器,没绑定bind的为公共计算器,call可以调用,绑定bind的为私人计算器,别人调用不了, //ps:用bind绑定的call强制作借用不好 ...
- call, apply, bind 区别
#call, apply, bind 区别及模拟实现call apply bind 三者都可以用来改变this的指向,但是在用法上略有不同 首先说一下call和apply的区别 call和apply ...
- js中的call,apply,bind区别
在JavaScript中,call.apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向. call.apply.bind方法的共同点和区别:app ...
- call(),apply(),bind() 区别和用法
call call 方法第一个参数是要绑定给this的值,后面传入的是一个参数列表.当第一个参数为null.undefined的时候,默认指向window. var arr = [1, 2, 3, 8 ...
- js 中arguments,call,apply,bind的使用
//对于 arguments和this, 每个函数都有自己独有的arguments和this, 且不进行链式查找 //arguments是什么? //答:1:arguments是收到的实参副本 //2 ...
- bind,apply,call区别总结
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- JavaScript中call,apply,bind方法的区别
call,apply,bind方法一般用来指定this的环境. var a = { user:"hahaha", fn:function(){ console.log(this.u ...
- javascript中的call(),apply(),bind()方法的区别
之前一直迷惑,记不住call(),apply(),bind()的区别.不知道如何使用,一直处于懵懂的状态.直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下. 如果有不全面的地方,后续再 ...
- apply、call、bind区别、用法
apply和call都是为了改变某个函数运行时的上下文而存在的(就是为了改变函数内部this的指向): 如果使用apply或call方法,那么this指向他们的第一个参数,apply的第二个参数是 ...
- bind、call、apply的区别与实现原理
1.简单说一下bind.call.apply的区别 三者都是用于改变函数体内this的指向,但是bind与apply和call的最大的区别是:bind不会立即调用,而是返回一个新函数,称为绑定函数,其 ...
随机推荐
- php数组增加元素
php数组增加元素 截图 代码 <HTML> <HEAD> <TITLE>给数组增加元素</TITLE> </HEAD> <? $Ci ...
- CSS响应式布局到底是什么?
响应式布局是最近几年在前端开发中非常火热的词,它是相对于固定像素大小的网页而言的,那么CSS响应式布局到底是什么?顾名思义,响应式布局就是网页能够响应各种各样不同分辨率大小的设备,能够将网页很好的呈献 ...
- 用iptables抗御SYN Flood攻击
1 引 言 网络安全是各种网络应用面临的一个首要问题.从网络普及的那天开始,网络犯罪就没有停止过,相反有愈演愈烈之势.研究发现,现今的网络攻击以分布式拒绝服务攻击(DDOS)为主 .其 ...
- react 组件使用的小记第一天
//定义一个子组件 var Child = React.createClass({ getInitialState: function() { return {liked: false}; }, ha ...
- C# Aspose.Cells 使用汇总
Workbook workbook = new Workbook(); //工作簿 Worksheet sheet = workbook.Worksheets[0]; //工作表 Cells cell ...
- SP1026 FAVDICE - Favorite Dice 数学期望
题目描述: 一个n面的骰子,求期望掷几次能使得每一面都被掷到. 题解:先谈一下期望DP. 一般地,如果终止状态固定,我们都会选择逆序计算. 很多题目如果顺序计算会出现有分母为 0 的情况,而逆序计算中 ...
- BZOJ2337: [HNOI2011]XOR和路径(高斯消元,期望)
解题思路: Xor的期望???怕你不是在逗我. 按为期望,新技能get 剩下的就是游走了. 代码: #include<cmath> #include<cstdio> #incl ...
- android对话框显示异常报错:You need to use a Theme.AppCompat theme (or descendant) with this activity.
今天写android实验碰到到一个问题,在用AlertDialog.Builder类构建一个对话框之后,调用Builder.show()方法时抛出异常如下: - ::-/xyz.qlrr.sqlite ...
- OR1200处理器中Wishbone总线接口模块WB_BIU介绍
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 WB_BIU模块是OR1200处理器与外部Wishbone总线连接的接口模块.15.1节给出了WB_BIU模块的对外连接关系,并指出 ...
- 4.2.2 MINUS
4.2.2 MINUS正在更新内容,请稍后