一。意义

function.apply(obj,args)

obj代替function里this对象

args作为参数传给function

二。实例

1. obj代替function里this对象

     function f(){
alert(this.x + this.y);
}
var obj = {x:1,y:2};
f.call(obj); //

2. API应用

Math.max(param1,param2,param3…) :实现得到数组中最大的一项

问题:max不支持数组参数

解决:根据apply的特点来解决

var max=Math.max.apply(null,array)

这块在调用的时候第一个参数给了一个null,这个是因为没有对象去调用这个方法,我只需要用这个方法帮我运算,得到返回的结果就行,

所以直接传递了一个null过去。undefine是未定义的对象 ,null是定义的对象, 但是没有实例,可以理解为null是defined了的obj。

3. 继承

 /*定义一个人类*/
function Person(name,age)
{
this.name=name;
this.age=age;
}
/*定义一个学生类*/
functionStudent(name,age,grade)
{
Person.apply(this,arguments);
this.grade=grade;
}
//创建一个学生类
var student=new Student("qian",21,"一年级");
//测试
alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
//大家可以看到测试结果name:qian age:21 grade:一年级
//学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.

最新文章

  1. 关于搭建一个高性能网站的服务器的架设思路以及nginx测试的并发
  2. Linux Found a swap file by the name filename
  3. JS判断数据是否是JSON类型
  4. Linux LAMP环境搭建
  5. mysql 存储过程事务
  6. Can’t find file mysql/host.frm
  7. php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
  8. 源代码管理(Windows + VisualSVN Server + TortoiseSVN + VS2010)
  9. ThinkPHP中 按条件查询后列表显示
  10. Android架构设计和软硬整合完整训练
  11. win8命令行
  12. 深入理解IOC
  13. 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法
  14. Redis 学习笔记4: Redis 3.2.1 集群搭建
  15. 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]
  16. git 提交代码操作
  17. 使用WebSocket帮助应用程序群集节点间通信
  18. python小练习:用户三次登陆, 购物车
  19. 用GDI+DrawImage画上去的图片会变大
  20. 如何保证RabbitMQ的消息不丢失及其背后的原理

热门文章

  1. URL.createObjectURL()
  2. 在php中修改cookie值遇到的奇怪问题
  3. BZOJ 2792 Poi2012 Well 二分答案
  4. ASP.NET MVC Razor 输出没有编码的HTML字符串
  5. android.app.Service-android:process=":remote"属性解说
  6. 李洪强iOS开发之OC[006] - 类和对象
  7. ext2文件系统了解
  8. 【ASP.NET】——AdRotator控件
  9. Hibernate使用Log4j日志记录(使用properties文件)
  10. JavaScript 对大小写敏感。