js中apply()方法与call()方法详解
2015-01-19 09:39
549 查看
js中apply()方法与call()方法详解
2.obj.call([thisObj[,arg1[, arg2[, [,.argN]]]]]):该方法与apply()方法意思一样,只是参数列表不同。
其次,分别说明这两个方法的应用:
1.
. . [itemN ]]]]):将新元素添加到一个数组中,并返回数组的新长度值,该方法同样不接受数组参数,也可利用Array.prototype.push.apply(arr1,arr2)巧妙的实现将一个数组添加到另一个数组后面。
以上都是利用apply()方法将参数数组组装成参数集合的特点巧妙的解决了实际问题。
之前见过这两个方法,只是一知半解。今天再次碰见,无奈只好仔细研究一下,通过查看一些资料,总结整理备注如下:
首先,简单分析一下这两个方法:
1.obj.apply([thisObj[,argArray]]):用thisObj对象作当前对象调用obj的方法,继承obj的属性,argArray是方法(或构造方法)的参数数组;
2.obj.call([thisObj[,arg1[, arg2[, [,.argN]]]]]):该方法与apply()方法意思一样,只是参数列表不同。
其次,分别说明这两个方法的应用:
//定义一个Person类 function Person(name, age){ this.name = name; this.age = age; } //定义一个Student类 function Student(name, age, grade) { Person.apply(this, arguments); //Person引用函数对象,student对象调用Person构造方法 //Person.call(this, name, age); this.grade = grade; } var student = new Student("James", 20, "二年级"); alert("name: " + student.name + "\nage: "+student.age + "\ngrade: " + student.grade); //显示结果name:zhangsan age:20 grade: 二年级最后,介绍一下apply()方法的巧妙用法:
1.
Math.max([number1[,number2[. . . [,numberN]]]]):返回给出的零个或多个数值表达式中较大者,该方法不接受数组参数,利用Math.max.apply(null,array)可以轻易得到一个数组中的最大项(可以理解为:apply会将数组解析成一个个的参数);
2.arrayObj.push([item1[item2[.
. . [itemN ]]]]):将新元素添加到一个数组中,并返回数组的新长度值,该方法同样不接受数组参数,也可利用Array.prototype.push.apply(arr1,arr2)巧妙的实现将一个数组添加到另一个数组后面。
以上都是利用apply()方法将参数数组组装成参数集合的特点巧妙的解决了实际问题。
相关文章推荐
- js中bind、call、apply方法详解
- Js apply call方法详解【转】
- JS中call/apply、arguments、undefined/null方法详解
- JS中call/apply、arguments、undefined/null方法详解
- Js的call()、apply()方法详解
- JS中的call、apply、bind方法详解
- JS中的call、apply、bind方法详解
- js 中apply方法和call方法的详解
- Js apply call方法 详解
- js中的apply()和call()方法详解
- 【js】javascript中call()和apply()方法的区别
- js中的call()和apply()方法
- JS中的call和apply方法
- JavaScript方法call,apply,caller,callee,bind的使用详解及区别
- JS中的call()和apply()方法
- 基于JavaScript实现继承机制之调用call()与apply()的方法详解
- js的call方法 apply方法 caller属性 callee属性
- js中的caller,callee,call,apply用法详解
- Js Call方法详解(js 的继承)
- javascript中apply方法和call方法的作用以及prototype.js中的应用