博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript 5 (ES5)
阅读量:6360 次
发布时间:2019-06-23

本文共 1716 字,大约阅读时间需要 5 分钟。

  为了深入学习ECMAScript5,在网上查看了很多的相关文档。其中几篇是关于ES5新增函数bind,所以今天整理一下,以备查阅。

    function(){}.bind(thisArg [,arg1 [,arg2 ....]]) :翻译成中文的话:函数:bind(this上下文参数,普通参数1,普通参数2,普通参数3);

    不说了,直接贴代码:

var obj  = {            a     :1,            b     :2,            getSum:function(){                return this.a+this.b            }        };        var test = {            a:10,            b:20        };        var a    = 4, b = 5;        console.log(obj.getSum());                //输出3:        var getSum = obj.getSum;        console.log(getSum());                    //输出9:        var getSum2 = obj.getSum.bind(obj);         // bind将函数的上下文指定为obj,所以a=1,b=2。        console.log(getSum2());                     //输出3:        var getSum3 = obj.getSum.bind(this);     // bind将函数的上下文指定为window,所以a=4,b=5。        console.log(getSum3());                     //输出9:        console.log(obj.getSum.call(test));      //输出30:call将getSum在test对象的上下文中执行,结果会返回test中的a,b值相加。        console.log(getSum2.call(test));          //输出3:bind绑定了obj对象的上下文,不会被call所影响

    如果在函数中使用setTimeout或者setInterval全局函数。

var a    = 4, b = 5;        var test = {            a:10,            b:20        };        var obj  = {            a      :1,            b      :2,            showSum:function(){                setTimeout(this.getSum, 1000);  //指向window                setTimeout(this.getSum.bind(this), 1000); //指向obj对象            },            getSum :function(){                console.log(this);                console.log(this.a+this.b);            }        };        obj.showSum(); // this -- window    a+b --- 9     setTimeout的作用域指向window: This -- window。

 

    

posted on
2017-06-05 16:20 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/icemanqiyu/p/6945528.html

你可能感兴趣的文章
linux下SSH远程连接服务慢解决方案
查看>>
HTML
查看>>
CENTOS7下编译安装PHP-5.4以及配置phpMyAdmin
查看>>
磁盘显示无法访问拒绝访问,里面的资料怎样找到
查看>>
Java之品优购课程讲义_day07(5)
查看>>
Java的新项目学成在线笔记-day3(八)
查看>>
路由简单的实验
查看>>
零基础学习大数据Hadoop需要什么准备?Hadoop如何发展起来的?
查看>>
前端程序员需要具备的几个软实力,你具备了吗
查看>>
RHEL系列网络配置2015083101
查看>>
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
查看>>
雨巷-戴望舒
查看>>
OpenCms创建网站过程图解——献给OpenCms的初学者们
查看>>
C++ 异常处理机制的实现
查看>>
Freebsd的ports命令
查看>>
分布式系统---幂等性设计
查看>>
【转】时钟周期,机器周期,指令周期的区别
查看>>
MYSQL 更新时间自己主动同步与创建时间默认值共存问题
查看>>
android 屏幕适配
查看>>
Android Activity的4种启动模式
查看>>