apply & call
2024-08-20 16:32:36
一。意义
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的神奇之处.
最新文章
- 关于搭建一个高性能网站的服务器的架设思路以及nginx测试的并发
- Linux Found a swap file by the name filename
- JS判断数据是否是JSON类型
- Linux LAMP环境搭建
- mysql 存储过程事务
- Can’t find file mysql/host.frm
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
- 源代码管理(Windows + VisualSVN Server + TortoiseSVN + VS2010)
- ThinkPHP中 按条件查询后列表显示
- Android架构设计和软硬整合完整训练
- win8命令行
- 深入理解IOC
- 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法
- Redis 学习笔记4: Redis 3.2.1 集群搭建
- 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]
- git 提交代码操作
- 使用WebSocket帮助应用程序群集节点间通信
- python小练习:用户三次登陆, 购物车
- 用GDI+DrawImage画上去的图片会变大
- 如何保证RabbitMQ的消息不丢失及其背后的原理
热门文章
- URL.createObjectURL()
- 在php中修改cookie值遇到的奇怪问题
- BZOJ 2792 Poi2012 Well 二分答案
- ASP.NET MVC Razor 输出没有编码的HTML字符串
- android.app.Service-android:process=";:remote";属性解说
- 李洪强iOS开发之OC[006] - 类和对象
- ext2文件系统了解
- 【ASP.NET】——AdRotator控件
- Hibernate使用Log4j日志记录(使用properties文件)
- JavaScript 对大小写敏感。