js 转换上下文
2012-12-13 11:18
85 查看
JavaScrtipt动态变换运行时上下文特性,这种特性主要就体现在apply, call两个方法的运用上.
区分apply,call就一句话,
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
call, apply都属于Function.prototype
的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.
在JavaScript中,代码总是有一个上下文对象,代码处理该对象之内. 上下文对象是通过this变量来体现的, 这个this变量永远指向当前代码所处的对象中.
call, apply作用就是借用别人的方法来调用,就像调用自己的一样.
b.setMessage.call(a, “a的消息”) 等效于 a.setMessage( “a的消息”)
当参数明确时可用call, 当参数不明确时可用apply给合arguments.
区分apply,call就一句话,
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
call, apply都属于Function.prototype
的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.
在JavaScript中,代码总是有一个上下文对象,代码处理该对象之内. 上下文对象是通过this变量来体现的, 这个this变量永远指向当前代码所处的对象中.
call, apply作用就是借用别人的方法来调用,就像调用自己的一样.
b.setMessage.call(a, “a的消息”) 等效于 a.setMessage( “a的消息”)
当参数明确时可用call, 当参数不明确时可用apply给合arguments.
相关文章推荐
- JS把字符串转换成ASCII值
- js把数字转换为对应的大写
- JS中常用操作技巧(页面动态增加div,contain方法扩展,JSON对象鱼字符串转换)
- jq 与原生js 方法互相转换
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- JS日期时间与时间戳相互转换
- JS 实现"可读"字符串转换成"二进制的01"字符串
- js 回调函数中 this对象的执行环境(上下文)
- JS面试题大坑之隐式类型转换实例代码
- 类对象传输到jsp页面。需要转换为js的json对象时,这么做。
- js时间加减与时间对象与字符串之间的转换
- JS日期操作(日期转换、判断闰年、格式化等)
- js 字符串转换成数字的三种方法
- 原生jsDate()时间转换为yyyy-MM-dd 时:分:秒的格式
- JS实现HTML实体与字符的相互转换(二)
- javascript / js数据类型,数据类型转换
- 高斯克吕格与地理坐标相互转换算法(JS版本)
- JS数字金额转换为货币汉字形式
- 小tips:JS数值之间的转换,JS中最大的Number是多少?,JS == 与 === 的区别
- 如何在JS中实现相互转换XML和JSON