改变函数内部的this指针的指向
2018-02-28 20:32
447 查看
每个函数都包含两个非继承来的方法call()和apply();使用call()或者apply(),可以改变this的指向;
假设要改变fn函数内部的this的指向,指向obj,那么可以fn.call(obj);或者fn.apply(obj);
call和apply的区别:
call和apply的区别在于参数,他们两个的第一个参数都是一样的,表示调用该函数的对象;
apply的第二个参数是数组,是[arg1,arg2,arg3]这种形式,而call是arg1,arg2,arg3这样的形式。
另外还可以用bind函数:
var bar=fn.bind(obj);
那么fn中的this就指向obj对象了,bind函数返回新的函数,这个函数内的this指针指向obj对象。
假设要改变fn函数内部的this的指向,指向obj,那么可以fn.call(obj);或者fn.apply(obj);
call和apply的区别:
call和apply的区别在于参数,他们两个的第一个参数都是一样的,表示调用该函数的对象;
apply的第二个参数是数组,是[arg1,arg2,arg3]这种形式,而call是arg1,arg2,arg3这样的形式。
另外还可以用bind函数:
var bar=fn.bind(obj);
那么fn中的this就指向obj对象了,bind函数返回新的函数,这个函数内的this指针指向obj对象。
相关文章推荐
- 改变 javascript 函数 内部 this 指针 指向 的三种方法
- 改变javascript函数内部this指针指向的三种方法
- 改变javascript函数内部this指针指向的三种方法
- 改变javascript函数内部this指针指向的三种方法
- 改变javascript函数内部this指针指向的三种方法
- C/C++ 子函数返回局部变量、指针 和改变指针指向
- 【php数组函数序列】之key() - 获取数组内部指针当前指向元素的键名
- 【php数组函数序列】之current() - 获取数组内部指针当前指向元素的值
- php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
- JavaScript的回调函数内部this的指向问题以及四种绑定this指向的方法
- C++中常函数内部的this指针也是const类型的
- 【C++】对于指针参数在函数体内改变指向,为何从函数出来之后并没有改变?
- trim()函数:仅仅改变指针指向,没有删除及移动字符,提高了效率
- 关于AVL平衡二叉树的c语言实现(函数内部改变指针本身)
- 指针参数在函数中不能改变指针指向的原因和解决方法
- PHP - Manual手册 - V. Array 数组函数 - reset将数组的内部指针指向第一个单元
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- JS 改变函数中 this 的指向
- c++ 指向 类成员函数(thiscall)的 函数指针
- js事件处理程序的运行环境(改变attachEvent内部的this指向&封装兼容性的 addEvent方法)