关于js的this上下文环境绑定
2012-11-29 19:57
197 查看
javascript的this关键字很特别和actionscript2.0时期this指向是一样的,如果你以前是个actionscript2.0的coder那肯定是往事不堪回首。actionscript3.0以后this关键字就是指向类本身,而javascript至今还是未实现this始终指向类本身的功能。新版本的ECMAScript5中已经加入了bind函数以控制this关键字的绑定,但是在这之前最好还是自己实现bind函数,通过判断Function.prototype.bind是否支持来实现自己的bind函数,如果已经实现则使用浏览器原生支持的方法。1、简易的绑定this到某对象上
if(!Function.prototype.bind){ Function.prototype.bind = function(obj){ var self = this; return function(){ return self.apply(obj); } };}使用方法:
var foo = {name:'foo';sayName: function(){console.log(this.name);}}foo.sayName.bind(foo);2、prototype框架使用的this绑定方法可传递参数
if (!Function.bind) { Function.prototype.bind = function() { var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift(); return function() { return fn.apply(object, args.concat(Array.prototype.slice.call(arguments))); }; }; };使用方法:
func.bind(this, 1,2,3);//绑定并传递额外的参数1,2,3等
相关文章推荐
- 关于js的this上下文环境绑定
- JS 中关于this 执行环境的问题_part3
- js函数和对象的魅力之this、return和上下文环境的功劳(小感悟)
- 关于JS的两道有意思题--关于this的绑定
- JS 中关于this 执行环境的问题_part2
- 【转】你不知道的js中关于this绑定机制的解析
- JS 中关于this 执行环境的问题_part1
- 关于JS中,怎么绑定this对象(来自网络收集整理)
- js 回调函数中 this对象的执行环境(上下文)
- 关于 js 中 this 的理解
- js 中call和apply的理解-切换上下文环境
- js 执行环境(上下文)、作用域链
- 关于JS面向对象中原型和原型链以及他们之间的关系及this的详解
- JS中this上下文对象使用方式
- js一个关于作用域和执行环境的例子
- 关于js里的this关键字的理解
- 关于js中this的用法详解
- js绑定事件this指向发生改变的问题解决方法
- 关于JSthis指向
- JavaScript——JS上下文中的this值笔记