apply,call,bind函数作用与用法】的更多相关文章

作用 可以把方法借给其它对象使用,并且改变this的指向 a.apply(b,[3,2]);//this指向由a变为b, a的方法借给b使用 实例: function add(a,b){                console.log(this)              return a+b;              }            function sub(a,b){              return a-b;              }            //…
javascript在函数创建的时候除了自己定义的参数外还会自动新增this和arguments两个参数 javascript中函数也是对象,call.apply.bind函数就是函数中的三个函数,这三个函数的作用就是改变调用当前函数中this指向. call.apply.bind三个函数接收两个参数,第一个参数都是函数执行指向对象的this,第二参数是函数执行传递的参数数据,call和bind传递数据是变长参数,apply传递数据是数组.call和apply是立即执行的,而bind是返回一个函…
apply 方法/call 方法 obj.call(thisObj, arg1, arg2, ...);obj.apply(thisObj, [arg1, arg2, ...]); 两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法.或者说thisObj『继承』了obj的属性和方法.唯一区别是apply接受的是数组参数,call接受的是连续参数. 看代码: function add(j, k){ return j+k; } function…
bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: function func(){ console.log(this) } func.bind(); // 用函数来调用 bind 的作用: bind() 方法调用后会创建一个新函数.当这个新函数被调用时,bind() 的第一个参数将作为新函数运行时的 this的值,之后的序列参数将会在传递的实参前传入作为新函数的参数.<MDN> bind 接…
今日学习内容: (1)call 函数的实现步骤: 判断调用对象是否为函数,即使是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况. 判断传入上下文对象是否存在,如果不存在,则设置为 window . 处理传入的参数,截取第一个参数后的所有参数. 将函数作为上下文对象的一个属性. 使用上下文对象来调用这个方法,并保存返回结果. 删除刚才新增的属性. 返回结果. (2)apply 函数的实现步骤: 判断调用对象是否为函数,即使是定义在函数的原型上的,但是可能出现使用 call 等方…
call 和 apply 的共同点 它们的共同点是,都能够改变函数执行时的上下文,将一个对象的方法交给另一个对象来执行,并且是立即执行的. 为何要改变执行上下文?举一个生活中的小例子:平时没时间做饭的我,周末想给孩子炖个腌笃鲜尝尝.但是没有适合的锅,而我又不想出去买.所以就问邻居借了一个锅来用,这样既达到了目的,又节省了开支,一举两得. 改变执行上下文也是一样的,A 对象有一个方法,而 B 对象因为某种原因,也需要用到同样的方法,那么这时候我们是单独为 B 对象扩展一个方法呢,还是借用一下 A…
一.前言 ECMAScript中的函数是对象,因此函数也有属性和方法.每个函数都包含两个属性:length和prototype.每个函数也包含两个非继承来的方法:apply()和call(),还有一些继承而来的方法,比如valueOf()等. 二.函数属性:length.prototype 2.1.length 函数希望接收的命名参数的个数,如: function sum(a,b){ return a+b; } sum.length ; //2 function add(){ } add.len…
面向连接的网络应用程序分为客户端和服务器端.服务器端的执行流程一般为4步,客户端程序相对简单,一般需要两个步骤. 服务器端执行流程4步如下: (1)调用socket函数,建立一个套接字,该套接字用于接下来的网络通信. (2)调用bind函数,将该套接字绑定到一个地址,并制定一个端口号, (3)调用listen函数,使用该套接字监听连接请求 (4)当请求来到时,调用accept函数复制该套接字处理请求 客户端执行流程2步如下: (1)调用socket函数,创建一个套接字 (2)调用connect函…
面向连接的网络应用程序分为客户端和服务器端.服务器端的执行流程一般为4步,客户端程序相对简单,一般需要两个步骤. 服务器端执行流程4步如下: (1)调用socket函数,建立一个套接字,该套接字用于接下来的网络通信. (2)调用bind函数,将该套接字绑定到一个地址,并制定一个端口号, (3)调用listen函数,使用该套接字监听连接请求 (4)当请求来到时,调用accept函数复制该套接字处理请求 客户端执行流程2步如下: (1)调用socket函数,创建一个套接字 (2)调用connect函…
为了加深对基础知识的理解,今天再复习下js中的apply,call,bind的区别和用法.整理笔记的过程也是一个再次学习的过程. apply和call js中的调用apply和call方法可以改变某个函数执行的上下文环境,也就是可以改变函数内this的指向值. 例子: var person={ name:'aa', getName:function(){ console.log(this.name); } } var person2 = { name:'bb' } person.getName(…