javascript方法--call()
关于call方法,以前经常看到这个方法,但是也没怎么用心去学习,后来觉得不行,所以知识在一点一点补~
今天对自己学习call方法做一下总结
其实,学了call方法,会发现call跟apply其实是很像的,不过还是有一些不同
语法
fun.call(this,arg1,arg2,...)
fun方法在指定的this下调用,并且指定了若干个参数,可以解释为一个对象(this)借用另一个对象上的方法(fun)
(第一个参数指示this,第二个及以后的参数做为函数调用时的参数)
与apply比较
apply只跟有两个参数,第一个参数跟call是一样的,第二个参数则是一个数组,不过两者实现的功能是差不多的
实例
1.调用父构造函数实现继承
function Father(){
...
}
function Child(){
//子类继承父类的方法属性
Father.call(this,...);
...
}
//把子类的原型指向父类,表示继承自父类
Child.prototype = new Father();
var childObj = new Child();
2.使用call方法调用匿名函数
var animals = [
2 {name:'a',num:1},
3 {name:'b',num:2}
]; for (var i = 0;i < animals.length;i++) {
7 (function(i) {
8 console.log(i + ',name:' + this.name + ',num:' + this.num);
9 }).call(animals[i],i);
10 }
兼容性
call的兼容性是很好的,所有浏览器都兼容call方法,所以当要用到继承时,call方法是个不错的选择~
javascript方法--call()的更多相关文章
- jQuery基础学习5——JavaScript方法获取页面中的元素
给网页中的所有<p>元素添加onclick事件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...
- 节点插入--对比jQuery和JavaScript方法(一)
二.插入元素: 1 <div> 2 <p>面朝大海,春暖花开</p> 3 </div> (一).jQuery方法 1.在节点内部插入: 方法 说明 ap ...
- Iframe 父子窗体互调javascript方法及相互获取控件
父窗体中的Iframe标签如下,子窗体为Default.aspx; <iframe id="left" name="left" src="Def ...
- 在 Flash ActionScript 2.0 中调用 Javascript 方法
本篇文章由:http://xinpure.com/call-the-javascript-method-in-flash-actionscript-2-0/ 在 Flash ActionScript ...
- JavaScript方法splice()和slice()
1 splice() 1.1 说明 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目.该方法会改变原始数组.Link 1.2 语法 arrayObject.splice(inde ...
- iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法
ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...
- 谷歌浏览器调试javascript方法
谷歌浏览器调试javascript方法 1 ctrl + shift + f 全局文件搜索 然后加断点 也可以直接编辑js文件 保存后 就更新了 一般用在点击事件上 ps:如果加了断点 刷新浏览断点消 ...
- JavaScript方法call、apply、caller、callee、bind的使用详解及区别
一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). 即 “某个方法”当做“指定的某个对象”的“方法”被执行. Js代 ...
- JavaScript方法call,apply,caller,callee,bind的使用详解及区别
一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). 即 “某个方法”当做“指定的某个对象”的“方法”被执行. Js代 ...
随机推荐
- bzoj 1221: [HNOI2001] 软件开发 (网络流)
注意说如果直接从每天的新的连向旧的,那整个图的最大流还是不变,答案就一直会是Σni*f type arr=record toward,next,cap,cost:longint; end; const ...
- [LOJ 6000]搭配飞行员
link 其实就是一道二分图匹配板子,我们建立$S$,$T$为源点与汇点,然后分别将$S$连向所有正驾驶员,边权为$1$,然后将副驾驶员与$T$相连,边权为$1$,将数据中给出的$(a,b)$,将$a ...
- LoaderManager与CursorLoader用法
一.基本概念 1.LoaderManager LoaderManager用来负责管理与Activity或者Fragment联系起来的一个或多个Loaders对象. 每个Activity或者Fragme ...
- 前后端分离中,gulp实现头尾等公共页面的复用 前言
前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...
- emqtt新版升级一些事项和操作
注解 Erlang/OTP R19依赖lksctp-tools库 yum install lksctp-tools 控制台地址: http://127.0.0.1:18083,默认用户: admin, ...
- 使用jquery.qrcode生成二维码及常见问题解决方案
转载文章 使用jquery.qrcode生成二维码及常见问题解决方案 一.jquery.qrcode.js介 jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery ...
- 文件字节大小显示成M,G和K
//字节大小,K,M,G public static final long KB = 1024; public static final long MB = KB * 1024; public sta ...
- PHP系统编程--02.PHP守护进程化
什么是守护进程? 一个守护进程通常补认为是一个不对终端进行控制的后台任务.它有三个很显著的特征:在后台运行,与启动他的进程脱离,无须控制终端.常用的实现方式是fork() -> setsid() ...
- 【poj3621】最优比率环
题意: 给定n个点,每个点有一个开心度F[i],每个点有m条单向边,每条边有一个长度d,要求一个环,使得它的 开心度的和/长度和 这个比值最大.n<=1000,m<=5000 题解: 最优 ...
- list互转datatable 支持Nullable转换
/// <summary> /// list转datatable /// </summary> /// <param name="list">& ...