修改this指向

传参

不传参数时 this 默认指向 window
call 接受散的数据,如果是数组视为一条数据
apply 只能是数组
bind 接受散的数据,如果是数组视为一条数据

执行问题

call 和 apply 都会主动执行
bind 不会主动执行

修改调用函数 this 指向的对象,调用函数的实参依次写在后面

任意对象的原型上的方法,要取这个方法的调用者,直接 this 取

字符串可以解析字符串
setTimeOut('fn(1, 2, 3)', 1000);
时间一到就把字符串 去掉 函数又是立即执行的

兼容bind方法 (IE8 及其一下不支持bind方法)

        // 没有bind方法才调用
        if (!Funtion.prototype.bind) {
            Function.prototype.bind = function () {

                // 拿到修改this指向的对象
                var bindThis = arguments[0];

                // 拿到后面的所有参数
                var arg = Array.prototype.slice.call(arguments, 1);

                // 拿到调用者
                var that = this;

                return function () {
                    that.apply(bindThis, arg);
                }
            }
        }
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 放大镜实例 页面结构:创建左右两个容器,左边容器中添加一张图片背景图,右边容器中添加一张与背景图成比例放大的图...
    果木山阅读 350评论 0赞 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,779评论 0赞 4
  • 1.概念 在JavaScript中,this 是指当前函数中正在执行的上下文环境,因为这门语言拥有四种不同的函数调...
    BluesCurry阅读 1,313评论 0赞 2
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 5,030评论 0赞 5
  • 黄昏风慢,几分慵意,树影摇散。 柴扉无有客扰,壶中小酒,醺于炉畔。 恰是飞霞正好,唤猫儿来看。 酌半杯,余味绵长,...
    当初不该下凡阅读 271评论 1赞 1

友情链接更多精彩内容