call 1.改变this指向 2.执行函数 3.传参 apply 1.改变this指向,执行函数,传参(参数必须是数组的形式) bind 1.改变this指向 2.执行函数(bind方法不会立即执行函数,而是返回了一个新的函数,新的函数调用的时候才会执行) 3.传参(参数会传递到返回的函数中,例下 ...
分类:
移动开发 时间:
2019-10-17 17:40:05
阅读次数:
91
前言 The last time, I have learned 【THE LAST TIME】一直是我想写的一个系列,旨在厚积薄发,重温前端。 也是给自己的查缺补漏和技术分享。 欢迎大家多多评论指点吐槽。 系列文章均首发于公众号【全栈前端精选】,笔者文章集合详见 "Nealyang/persona ...
分类:
移动开发 时间:
2019-10-17 10:32:16
阅读次数:
112
通过 call() 或 apply() 方法你可以设置 this 的值, 且作为已存在对象的新方法调用。 call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: app ...
分类:
移动开发 时间:
2019-10-16 17:52:54
阅读次数:
112
共同点:他们3个都是用来改变函数调用时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向 1.call与apply作用是一样的,都是改变此次函数调用时this的指向,但是在传参时有一些区别 function Person(name){ this.name = na ...
分类:
移动开发 时间:
2019-09-25 00:40:00
阅读次数:
137
最近开发的过程中遇到了this指向问题,首先想到的是call()、apply()、bind()三个方法,有些时候这三个方法确实是十分重要,现在我们就把他们的使用方法及异同点讲解一下。 1、每个函数都包含三个非继承而来的方法,call()方法、apply()方法和bind()方法 2、相同点:三者的作 ...
分类:
移动开发 时间:
2019-09-24 15:43:21
阅读次数:
102
基础数据类型和引用数据类型 js原型链 js继承 原型继承和class继承 call,apply,bind的区别? 闭包,应用场景,优缺点? 垃圾回收?什么算法? 对象遍历 给定一个对象,如何遍历获取里面的属性和值? 数组遍历 如何判断一个变量是不是数组 instanceof原理了解吗? js事件捕... ...
分类:
Web程序 时间:
2019-09-08 09:19:52
阅读次数:
147
1.call、apply、bind的作用是改变函数运行时this的指向 方法调用模式: 当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象。 此时的this是指obj1这个对象,obj1.fn()实际上是obj1. ...
分类:
移动开发 时间:
2019-08-30 11:19:37
阅读次数:
89
上下文调用模式:指call,apply,bind三个方法,他们都能改变this指向. 1 call 作用1:调用函数 -- 和普通调用函数一样 fn.call(); 作用2:改变函数的this指向; 第一个参数:通常是个对象,call使函数中this指向这个对象 剩余的参数:是函数的实参 fn.ca ...
分类:
其他好文 时间:
2019-08-24 20:52:56
阅读次数:
109
在函数中this指向谁: 函数中的this指向谁,是由函数被调用的那一刻就确定下来的 平时确定一个函数中的this是谁,我们需要通过调用模式来确定 1. 函数调用模式 this > window 函数名() 2. 方法调用模式 this > 调用方法的对象 对象.方法名() 3. 构造函数调用模式 ...
分类:
移动开发 时间:
2019-08-21 00:25:19
阅读次数:
111
创建对象的方式有四种 1.直接量 var obj={ 属性名:属性 方法名:function(){} } 2.通过构造函数创建对象,这样能够批量创建多个具有相同属性的子对象(顺便介绍call,apply,bind三个关键字的区别应用) function person(name,age){ this. ...
分类:
移动开发 时间:
2019-08-17 18:23:56
阅读次数:
164