Function.apply(obj,args) 方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args–>arguments) call 和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]) obj:这个对象将代替Function类里this对象 params:这个...
apply()函数用于调用当前函数functionObject,并可同时使用指定对象thisObj作为本次函数执行时函数内部的this指针引用。 该函数属于Function对象,所有主流浏览器均支持该函数。 语法 functionObject.apply( [ thisObj [, argsArray ]] ) 参数 参数 描述 thisObj 可选/Object类型指定执行functionObject函数时,函数内部this...
func.apply(thisArg, [argsArray]) func:要调用的函数。 thisArg:func 函数运行时的 this 引用。如果该参数不是一个对象,那么它会被转换为对象。 [argsArray]:一个数组或类数组对象,func 函数的参数列表。 2、使用示例 1)改变函数的 this 上下文 function man() { this.Name="man"; this.SayName=function...
function greet(name) { console.log(`Hello, ${name}!`); } 复制代码 我们可以使用apply()方法来调用这个函数,并传递一个参数: greet.apply(null, ['Alice']); 复制代码 在这个例子中,apply()方法将会以null作为this值调用greet函数,并传递了一个包含字符串’Alice’的数组作为参数。这将会打印出"Hello, ...
bind、call、apply 的相同点 都是Function原型上的方法 用途都是改变 this 的指向 第一个参数都是新的 this bind、call、apply 的不同点 bind 会返回一个新的函数,目标函数在新函数调用时才会执行 let newFunc = obj.myFn.bind(newObj,'北京','上海'); ...
在深入理解this机制中,我们知道了call、apply用于函数执行的时候显示绑定this。那么它内部的原理是怎么样的呢,接下来带你一步一步实现自己的call,apply 解读v function foo() { console.log(this.a) } const obj = {a:1} foo.call(obj) // 1
apply和call方法实际上并不在函数这个实例对象中,而是在Function的prototype中 bind方法 bind方法是复制的意思,参数可以在复制的时候传进去,也可以在复制之后调用的时候传进去 使用的语法: 函数名字.bind(对象,参数1,参数2,...); ===>返回值是复制之后的这个函数 方法名字....
name;this.age=12;this.hobby=hobby;this.fun=function(){}}varobj={};varobj2={};functionSun(){People.call(this,"swim");People.call(obj,"running");//call方法传递实参直接写People.apply(obj2,["hiking"])//apply方法传递实参需要用arguments}vara=newSun()//实例化Sunconsole.log(a);// {name...
apply () 方法是 JS 中所有函数默认都有的方法,IE5 + 支持,如果需要 IE5 的支持的话,可以参考博客 www.jb51.net/article/44151.htm 都知道,在 JS 中可以通过 this 关键字获取当前执行环境,比如: var obj = { name: 'Wang', init: function(){ this.name = 'Jeffrey'; } }; obj.init() console....
function funcA() { alert(this);alert("Function A");} 上⾯这段代码中的函数funcA定义在全局环境中,那么函数体内的this即window对象。下⾯该到call和apply的说明了。以call函数为例,call的第⼀个参数,就是改变函数的作⽤域,后⾯的参数为传⼊函数的所需的参数,必须与原函数的参数⼀直,举...