Js中的call和apply
来源:互联网 发布:最新版软件开发合同 编辑:程序博客网 时间:2024/06/05 15:11
函数有俩个属性,call和apply,这俩属性都是用于动态的改变this,
普通的函数的this都是指向调用函数的对象或者该函数生成对的对象,如下面的例子
function Foo(){this.name = "ruiy";this.age = 20;console.log(this);//Foo{name:"ruiy",age:20}}var obj = new Foo();console.log(obj.name);//ruiyconsole.log(obj.age);20Foo();//Windowobj.fun = function(){console.log(this);}obj.fun();//Foo{name:"ruiy",age:20}
实际上,Js中的指针复杂要比上述复杂的多,但是记住一点,this的值只在执行的时候有值,在不同的情况下会有不同的值,但是都和调用它的执行环境有关,基本指向当前活动的对象。
下面回到call函数,apply就是将传入的参数以数组的形式传入即可,其他都相同
function changeStyle(attr,value){// console.log(this);// console.log(this.style);this.style[attr] = value;console.log(this);}window.onload = function(){console.log(this);//Window对象var oDiv = document.getElementById("box");window.changeStyle.call(oDiv,"height","200px");//<div>对象}
可以上述代码的log看出,函数调用call将自己应用的对象改变了,即原来是在window对象下,然后调用之后,这个函数应有于oDiv对象了。
1 0
- JS中的call和apply
- js中的call和apply
- JS中的Call和Apply
- js 中的apply和call
- Js中的call和apply
- JS中的apply和call
- js中的call和apply
- js中的 call()和apply()
- js中的call和apply
- js 中的call 和 apply
- js中的call()和apply()
- JS中的call和apply
- JS中的call()和apply()
- js中的call()和apply()方法
- js中的apply()和call()方法详解
- JS中的call()和apply()方法
- JS中的call()和apply()方法
- JS中的call()和apply()方法
- 解决ios证书无效问题
- Android消息机制------Handler机制的原理(超详细)
- lesson 2 Supporting Different Devices
- 【转】分布式异步任务队列 Celery + rabbitmq (or redis )
- HTML使用列表
- Js中的call和apply
- java线程基础
- 封装RecyclerViewAdapter实现RecyclerView下拉刷新上拉加载更多
- Java四种线程池的使用
- ORM框架分析之DB到Entity的映射(二)
- LeetCode318:Maximum Product Of Word Length
- HTTP、TCP、UDP、Socket
- View移动总结(侧拉菜单例子)
- Android学习之使用正则表达式Pattern与Matcher来判断字符串格式