call apply bind 的区别,this的四种绑定方式

1. apply()中有两个参数,不一定是必填项,当第一个参数什么都不填或则是null/undefined,默认为window

第二个参数必须是数组,数组中的元素和函数的参数对应

Call怎么使用
用途,用于修改函数中的this指向 也是函数ming.call(),执行的元素先替换函数中的this,然后再执行这个函数

Call中参数的分析
1. call函数的第一个参数是什么,函数中this就换成什么,当不填或null/undefined,里面的this就是window
2. 从第二参数开始,跟函数的形参要一一对应

Bind的使用
Bind的使用,不是用在执行的时候,而是用再函数定义的时候,只有一个参数,用于替换this的。

总结this
函数中的this有四种绑定方式
函数中的this指向当前函数所处的生存环境,谁调用了它,this就指向谁。
Js中给我们提供了四种绑定方式用于修改this
1.直接绑定方式(默认绑定方式)优先级最低
针对普通的函数,this就是window(只要函数调用的时候前面没有带.)

2.隐式绑定方式 当作对象方法来调用(这个函数在调用的时候前面带.了) 它的优先级比直接绑定高一些

注意:出现连续性的对象方法操作,this采用就近原则。

this是obj对象也行,说是o.oo对象也行,二者指向的内存地址是一样的。
3. 显示绑定,apply call bind的绑定方式
已讲 看上面的笔记
4,new 的绑定方式。
New帮定的优先级>显示绑定>隐式绑定>直接绑定

原文地址:https://www.cnblogs.com/zhangyuxinxin/p/12397537.html

时间: 2024-10-01 19:48:27

call apply bind 的区别,this的四种绑定方式的相关文章

ASP.NET Eval四种绑定方式 及详解

1.1.x中的数据绑定语法 <asp:Literal id="litEval2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "userName")%>' /> 2. 2.x简化Eval数据绑定语法 <asp:Literal id="litEval1" runat="server" Text='<

ASP.NET Eval四种绑定方式

1.1.x中的数据绑定语法 <asp:Literal id="litEval2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "userName")%>' /> 2. 2.x简化Eval数据绑定语法 <asp:Literal id="litEval1" runat="server" Text='<

ZigBee的 四种绑定方法简介

绑定是Zigbee中非常重要的一个概念,想必大家都看了很多文章,其中以“Zigbee四种绑定方式在TI_Z-Stack协议栈中的应用”最为典型,此文我也读过几遍,收货颇丰.此外飞比(Feibit)论坛上也有帖子讲解了EndDeviceBinding蛋疼的传来传去机理,分析的也相当透彻.我这里不在想解释具体的各种绑定方式的代码实现和机制,而是简单说明一下各种绑定机制的特点,希望大家能够从应用层面上概念性地理解和认识绑定,然后针对各种机制的应用场景加以举例.一.绑定方式再解释Zigbee绑定的四种方

Javascript中函数的四种调用方式

一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属性:arguments和this. arguments主要是用来保存函数参数,arguments中的callee属性主要是用来指向拥有当前arguments的函数(理解Javascript参数中的arguments对象). 3.在ECMAScript5中规范了另一个函数属性:caller(Opera

CSS的四种引入方式

CSS的引入方式最常用的有三种, 第一:在head部分加入<link  rel="stylesheet" type="text/css" href="my.css"/>,引入外部的CSS文件. 这种方法可以说是现在占统治地位的引入方法.如同IE与浏览器.这也是最能体现CSS特点的方法:最能体现DIV+CSS中的内容与显示分离的思想,也最易改版维护,代码看起来也是最美观的一种. 第二:在head部分加入<style type=&q

同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式

1. 概念理解        在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:   同步/异步主要针对C端: 同步:      所谓同步,就是在c端发出一个功能调用时,在没有得到结果之前,该调用就不返回.也就是必须一件一件事做,等前一件做完了才能做下一件事.   例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步:      异步的概念和同步相对.当c端一个

[转][Android]Android数据的四种存储方式

android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuilder public class SQLiteQueryBuilderextends Object This is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects. 构造方法摘要

Android开发之基本控件和详解四种布局方式

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

lua中for循环的四种遍历方式

lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3 key,value pairs 取每一个键值对 ipairs 取从key==1开始的顺序整数最大值,每个键值对 参考http://rangercyh.blog.51cto.com/1444712/1032925 不过有一个问题, tbtest = { [1] = 1, [2] = 2, [4] = 4, } print(#(tbtest))