一直以来,我的理解就是  js中的Function.apply(或者是Function.call)方法是来改变Function 这个函数的执行上下文(excute Context),说白了,就是改变执行时函数所处的作用域,

最直接的就是影响到 this 这个预定义的变量的值。!!Function.apply(obj, arguments),就是改变 function 的执行环境为 传入的obj 对象,即 Funtion 内部的this 会被改变为 obj.

下面的这个例子是搜索别人的例子的。

先看个例子

function Person(name,age,grade){   //定义一个类,人类
this.name=name; //名字
this.age=age; //年龄
this.sayhello=function(){alert(grade)};
}
function Student(name,age,grade,school){ //学生类
Person.apply(this,arguments);
for(var i in arguments){alert(arguments[i])} this.grade=grade; //年级
this.school=school; //学校
}
stu = new Student('yuanshao',26,'university','Huaqiao')
stu.sayhello();//这样stu就有了 Person构造器中的sayhello()方法。

  解释一下:

apply方法能劫持另外一个对象的方法,继承另外一个对象的属性

Function.apply(obj,args)方法能接收两个参数

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

再看个例子:

alert(Math.max(5,8,9,11))   //8 可以
————————————
var arr=[5,7,9,1]
alert(Math.max(arr)) // 这样却是不行的。
——————————————————————
var arr=[5,7,9,1]
alert(Math.max.apply(null,arr)) // 这样却行的。一定要这样写

  

最新文章

  1. hdu4607 Park Visit(树的直径)
  2. Canu Quick Start(快速使用Canu)
  3. .Net 学习
  4. 浏览器内核控制Meta标签说明(内核渲染优先问题)
  5. eclipse 终极操作技巧
  6. JAVA动态代理详解
  7. 浅谈OSI七层模型及ICP/IP四层模型
  8. 关于装双系统Ubantu16.04+Win10引导问题
  9. 死磕 java集合之HashMap源码分析
  10. 【任务】Python语言程序设计.MOOC学习
  11. MySQL8.0安装
  12. 【NOI2008】志愿者招募
  13. php使用memcached缓存总结
  14. I - 迷宫问题
  15. html部分常用标签的含义及作用
  16. linux下时间有关的函数和结构体
  17. js省市级联实现
  18. 通用后台管理系统(ExtJS 4.2 + Spring MVC 3.2 + Hibernate)
  19. linux系统更新rpm包问题 ,报错rhn-check-2.0.2-5.el7.noarch has missing requires of yum-rhn-plugin >= ('0', '1.6.4', '1')
  20. 【C#】往按钮事件中传递自定义参数

热门文章

  1. leetcode409
  2. wamp服务器
  3. assert()函数用法
  4. csdn的调查问卷,好多都不懂哈
  5. PAC全自动脚本代理
  6. Nmap的使用【转载】
  7. isPostBack原理
  8. Jenkins环境集成第一弹
  9. Cormen — The Best Friend Of a Man
  10. jsp环境搭建(Windows)