一直以来,我的理解就是  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. yii2 查询去重
  2. ios 逆向收录
  3. CoreGraphics相关方法
  4. HTML5学习预览
  5. 12套swift学习资源分享
  6. JFrame 实现全屏透明背景
  7. java坑之无法创建线程
  8. Wamp集成环境安装
  9. SELECT TOP column FROM table [ORDER BY column [DESC]]
  10. Matlab中用内建函数代替for循环
  11. Java 单元测试 JUnit4 快速入门
  12. 浅析C/C++中的switch/case陷阱
  13. Netty原理分析
  14. android studio Error:Execution failed for task ':app:processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt
  15. wordpress升级出错
  16. 从 mvc 到 REST
  17. apache2.4脚本一键安装(linux环境)
  18. Maven 基础知识
  19. linux mint 18.2 install erlang
  20. Maven 环境搭建及相应的配置

热门文章

  1. C++_系列自学课程_第_7_课_数组_《C++ Primer 第四版》
  2. UITableViewCell
  3. 稻壳图文模块调不出html代码
  4. Extjs4 获取到前一天的日期
  5. 不输入密码ssh直接登录阿里云Linux主机
  6. 5.CentOS6.6安装git
  7. meta 标签整理
  8. Unity UGUI在鼠标位置不同时 图片浮动效果
  9. nginx 解决400 bad request 的方法
  10. 蓝桥杯-格子中输出-java
  11. 从一次输入框无法输入的bug,谈如何限制输入框输入类型
  12. 章节十、5-CSS---用CSS 通配符定位元素
  13. Java中的日期格式转化
  14. SG函数值
  15. swift 警告框 - 自定义按钮颜色,图片
  16. LintCode——筛子求和
  17. 织梦漏洞可疑PHP文件/article文件夹
  18. python数据类型高阶
  19. 20155317 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉
  20. Bing的Translation API 接入