js 之 call 、 apply】的更多相关文章

js的call apply bind 方法都很常见,目的都是为了改变某个方法的执行环境(context) call call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) thisObj可选项.将被用作当前对象的对象.arg1, arg2, argN ..可选项.将被传递方法参数序列. 如果没设置严格模式 “use strict” 当thisObj 不存在或 为 undefined 或为 null 或为 this 时,则隐式地指向 全局对象(在浏览器中即为 wi…
JS Call()与Apply() ECMAScript规范给所有函数都定义了Call()与apply()两个方法,call与apply的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值,call与apply的不同就是call传的值可以是任意的,而apply传的剩余值必须为数组. 例如:function add(a, b) { return a + b; } function sub(a, b) { return a - b; } /*appl…
概述 js中的apply,call都是为了改变某个函数运行时的上下文环境而存在的,即改变函数内部的this指向. apply() apply 方法传入两个参数:一个是作为函数上下文的对象,另外一个是作为函数参数所组成的数组. var student = { name : 'xiaoming' } function getName(firstName , lastName){ console.log(firstName + ' ' + this.name + ' ' + lastName) } g…
如何用 js 实现一个 apply 函数 原理 实现方式 总结 refs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!…
尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值 求数组中的最大最小值,js有相应的方法:Math.min(),Math.max(),但是这两个方法有个不方便的地方就是其参数不能是数组,而是单个元素值,即(para1,para2,para3....).所以使用就没有那么方便了,但是我们可以使用这个方法: var min = Math.min.apply(null, arr); var max = Math.…
js中所有函数都默认定义了Call()与apply()两个方法,call与apply的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值,call与apply的不同就是call传的值可以是任意的,而apply传的剩余值必须为数组. 先看一个例子: function add(a, b) { return a + b; } function sub(a, b) { return a - b; } /* var a1 = sub.apply(add,…
一.call()和apply(),实例如下: function add(a,b) {     alert(a+b); } function sub(a,b) {     alert(a-b); } add.call(sub,3,1); 说明:这个例子中的意思就是用 sub继承add,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js 中的函数其实是对象,函数名是对 Function 对象的引用. 注意:替换为sub,相当对现在给su…
对js中的一些基本的很重要的概念做一些总结,对进一步学习js很重. 一.this JavaScript 中的 this 总是指向一个对象,而具体指向那个对象是在运行时基于函数的执行环境动态绑定的,而非函数声明时的环境     实际应用中 this 的指向大致可以分为以下 4 中:         1. 作为对象的方法调用         2. 作为普通函数掉用         3. 构造器调用         4. Function.prototype.call 或 Function.proto…
.apply和.call方法是在函数原型中定义的两个方法(因此所有的函数都可以访问它)允许去手动设置函数调用的this值,他们用接受 的第一个参数作为this值,this 在调用的作用域中使用.这两个方法的区别很小,对于.apply,第二个参数必须是数组(或者是类似数组的对象,如arguments,反过 来,.call能接受任何参数.两个方法必须的参数是第一个——this. 例如: var b = 10; function a(c) { alert(this.b); alert(c);} a(2…
借用网上的一个例子: fun.call(this,arg1,arg2,arg3) fun.apply(this,arguments) this.fun(arg1,arg2,arg3) 三种方法等效. 详细内容这篇博客写的很清楚了,我就偷懒转一下了. 转载:http://www.cnblogs.com/fighting_cp/archive/2010/09/20/1831844.html 下面自己在总结一下自己的领悟: 先贴下代码: <!DOCTYPE html> <html lang=&…