ES5对函数拓展了bind方法 作用:为函数绑定作用域(当函数执行的时候,改变函数的作用域,并传递参数) 目前为止改变作用域的方法|关键字: bind, call, apply, with, eval call与apply的区别 他们都是改变函数作用域的方法,都是在调用该方法的时候,执行函数并改变作 ...
分类:
移动开发 时间:
2020-06-09 12:53:36
阅读次数:
95
先看明白下边的例子 var name = '小王' var age = 17 var obj = { name: '小张', objAge: this.age, myFun: function () { console.log(`${this.name}年龄${this.age}`) } } con ...
分类:
移动开发 时间:
2020-06-04 19:21:32
阅读次数:
68
function call_mock (obj) { var aim_fun = this; var argument = []; for (var i = 1; i < arguments.length; i++) { argument.push(arguments[i]); } obj.aim_ ...
分类:
移动开发 时间:
2020-05-19 13:03:03
阅读次数:
52
js里的继承方法有很多,比如:使用原型链的组合继承、es6的Class、寄生继承以及使用call、apply、bind继承。再说继承之前,我们先简单了解下它们的区别。 一、区别: 同:三者都是改变函数执行时的上下文,说人话就是改变this的指向。 异: 1、bind()返回的其实是一个函数,并不会立 ...
分类:
移动开发 时间:
2020-05-18 00:57:01
阅读次数:
661
`this`的灵活性让编程困难了许多,因此需要一些方法把this给固定下来。 Function.prototype.call(thisValue, arg1, arg2, ...) 函数实例 的 可以指定函数内部this的指向。 的参数应当是一个对象。若 、`null undefined`则是全局对 ...
分类:
移动开发 时间:
2020-05-12 16:58:23
阅读次数:
63
把方法绑定到对应的对象上,那么该对象就不用再重写一遍相同的方法了,这样就达到了重复利用的目的。 一、bind方法 使用bind重新绑定对象。 二、apply方法 自行设置绑定对象,传入数组作为参数。 三、call方法 自行设置绑定对象,传入参数用逗号隔开。 ...
分类:
移动开发 时间:
2020-04-26 19:07:26
阅读次数:
69
前言:上一篇简单说了this的飘忽不定,有时,需要把this固定下来,避免出现意想不到的情况。JavaScript 提供了call、apply、bind这三个方法,来切换/固定this的指向。(出来混总是要还的)。 1、call() 函数实例的call方法,可以指定函数内部this的指向(即函数执行 ...
分类:
移动开发 时间:
2020-04-26 18:34:53
阅读次数:
64
// js中call,apply,bind的实现原理() // 三者的区别,都是改变this指针,call和apply主要是参数区别,bind返回的是一个函数体,而call和apply是立即执行 // call的实现 function fn1 (str1,str2,str3){ console.lo ...
分类:
移动开发 时间:
2020-03-04 09:37:51
阅读次数:
83
/* author:yangJian */ // js中call,apply,bind的实现原理() // 三者的区别,都是改变this指针,call和apply主要是参数区别,bind返回的是一个函数体,而call和apply是立即执行 // call的实现 function fn1 (str1, ...
分类:
移动开发 时间:
2020-03-04 09:18:27
阅读次数:
86
1. apply()中有两个参数,不一定是必填项,当第一个参数什么都不填或则是null/undefined,默认为window 第二个参数必须是数组,数组中的元素和函数的参数对应 Call怎么使用 用途,用于修改函数中的this指向 也是函数ming.call(),执行的元素先替换函数中的this, ...
分类:
移动开发 时间:
2020-03-02 20:46:29
阅读次数:
100