JS中的call()和apply()方法理解和使用
1、方法定义call方法:
语法:obj.method.call(thisObj[,arg1[, arg2[, [,.argN]]]]) 
定义:调用对象(obj)的一个方法(method),以另一个对象(thisObj)替换当前对象(obj)。 
说明: 
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象(方法内的this的指向传入的thisObj) 。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
apply方法: 
语法:apply([thisObj[,argArray]]) 
定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
说明: 
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
2、常用实例
function add(a,b) {
   alert(this);
    alert(a+b);
}
function sub(a,b){
  alert(a-b);
}
add.call(sub,3,1);
这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4);
或者说sub对象来执行add方法 add的this执行
// 注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。
var a = {
        myAlert : function(name) {
            alert(name + ':' + this.msg);
        }
    };
var b = {
        msg : 'yjdgis'
    };
a.myAlert.call(b, '云金地');
a.ayAlert.apply(b.['云金地']);//传递的参数以数组的形式传递
执行结果都为:云金地:yjdgis
JS中的call()和apply()方法理解和使用的更多相关文章
- 关于 js 中的 call 和 apply使用理解
		关于 js 中的 call 和 apply使用理解 在学习新的东西时候,碰到以前看过而又不理解,或则记忆不深的地方不妨回头看看书里知识点,有助于加深理解.正所谓--温故而知新. 废话不多说,直接上代码 ... 
- JS中的call()和apply()方法(转)
		转自:http://uule.iteye.com/blog/1158829 JS中的call()和apply()方法 博客分类: JS 1.方法定义 call方法: 语法:call([thisOb ... 
- JS中的call()和apply()方法
		1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ... 
- 【转】JS中的call()和apply()方法
		原文:http://uule.iteye.com/blog/1158829 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) ... 
- js中call()方法和apply方法的使用
		1. 方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ... 
- js中的call和apply方法
		call方法: 语法:call(thisObj,[arg1,arg2,arg3,...]); 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用 ... 
- JS中的call()和apply()方法区别
		如 果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可 理喻.如果在学JavaScript这自由而变幻无穷 ... 
- js中的call和apply方法的区别
		一.call和apply的说明 1.call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以 ... 
- 转发: JS中的call()和apply()方法和区别 --小白变色记
		一.方法定义: apply:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法. call:调用一个对象的一个方法,用另一个对 ... 
随机推荐
- Asp.Net MVC 上传图片到数据库
			[读书笔记]Asp.Net MVC 上传图片到数据库(会的绕行) 之前上传图片的做法都是上传到服务器上的文件夹中,再将url保存到数据库.其实在MVC中将图片上传到数据库很便捷的事情,而且不用去存 ... 
- 苹果推送通知服务Push Notification探究总结(序)
			刚才发了两篇几个月前写的文档,觉得太敷衍了,想了想,还是来一发实在的. 再者,刚好上周研究了苹果的推送通知服务Push Notification,还是很有心得的,赶紧趁热打铁,记录一下,望与大家谈论下 ... 
- 关于lower_bound的使用
			突然发现lower_bound是一个挺好用的东西, 在学习最长不下降子序列的nlogn的算法的时候看到的,C++党写起二分来一行- -P党一排233 感觉如果到时候需要用上二分的话,能用lower_b ... 
- Django ORM 查询管理器
			Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ... 
- Bootstrap3.0学习第三轮(栅格系统案例)
			Bootstrap3.0学习第三轮(栅格系统案例) 前言 在前面的一篇文章当中http://www.cnblogs.com/aehyok/p/3400499.html主要学习了栅格系统的基本原理,以及 ... 
- [转]LLVM MC Project
			Intro to the LLVM MC Project The LLVM Machine Code (aka MC) sub-project of LLVM was created to solve ... 
- Please Send Me a Card
			Please Send Me a Card 发现身边很多程序员都能看懂英文技术文章的60%-80%内容,但大家都有一个毛病,就是不会说,不会写作,在逛英文技术社区的时候,想发表点什么评论,总担心自己写 ... 
- jQuery Fancybox插件介绍
			下面介绍一款jquery图片播放插件叫Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点如下: 1.可以支持图片.html文本.flash动画.ifram ... 
- Kendo UI开发教程(7): Kendo UI 模板概述
			Kendo UI 框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaScript数据合并成最终的HTML元素. Kendo 模板侧重于UI显示 ... 
- C++中const用法详解
			本文主要内容来自CSDN论坛: http://bbs.csdn.net/topics/310007610 我做了下面几点补充. 补充: 1. 用const声明全局变量时, 该变量仅在本文件内可见, 类 ... 
