须要解释的一点是,最后一个调用该函数的对象是传到函数的高低文对象(绕懵了)。如:
- function fn() {
- console.log( this.a );
- }
- var obj2 = {
- a: 42,
- fn: fn
- };
- var obj1 = {
- a: 2,
- obj2: obj2
- };
- obj1.obj2.fn(); // 42 -- this引用的是obj2.
还有一点要解释的是,掉去隐式绑定的情况,如下:
5.3 显示绑定
学过bind()\apply()\call()函数的都应当知道,它接收的第一个参数等于高低文对象并将其赋给this。看下面的例子:
- function fn() {
- console.log( this.a );
- }
- var obj = {
- a: 2
- };
- fn.call( obj ); // 2
如不雅我们传递第一个值为简单值,那么后台会主动转换为对应的封装对象。如不雅传递为null,那么结不雅就是在绑定默认全局变量,如:
那边不雅众又该问了,既然this这么难以懂得,那么为个甚还要用它呢?我们来看个例子:
- function fn() {
- console.log( this.a );
- }
- var obj = {
- a: 2
- };
- var a = 10;
- fn.call( null); // 10
5.4 new新对象绑定
如不雅是一个构造函数,那么竽暌姑new来调用,那么绑定的将是新创建的对象。如:
- function fn(a) {
- this.a = a;
- }
- var bar = new fn( 2 );
- console.log( bar.a );// 2
读到如今,1中问的问题你该本身能答复上来了。膳绫擎介绍的四种关于this绑定的4中情况和规矩,实际写代码的过程中肯定比这要多和复杂,然则无论多复杂多乱,它们都是混淆应用膳绫擎的几个规矩和情况罢了。只要你的思路和懂得是清楚的,那肯定没问题的。
【编辑推荐】
- 由里到外步步深挖,深刻懂得JSON
- 美团王兴星:外卖贸易变现若何大年夜0到1
- Node + FFmpeg 实现Canvas动画导出视频
- Google爬虫若何抓取JavaScript的?
- 2017年移动开辟情况是趋势转型照样重视安然?都要!
推荐阅读
上个月,我们在《创建数据中间监控筹划的最佳实践筹划》一文中商量了一个异常有趣的话题。然则,似乎关于这方面话题的评论辩论远未停止。在以前的一个月中,我收到了大年夜量关于现代数据>>>详细阅读
地址:http://www.17bianji.com/lsqh/34612.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示