• this及其作用域(函数外部this变量的调用)


      众所周知的一件麻烦事是函数外部的this变量都不可见,但是我们在编写使用局部函数的方法时,却又很可能需要在某一时刻从内部函数访问this变量。

      这种情况下可以通过在this变量中存储一个需要的信息(例如在内部函数中可见的endOfLine),如果需要访问整个this对象,也可以将它保存到一个变量上,这种变量通常采用名称self(或者that).但是那么多的变量又会使代码看起来很乱。另一个比较好的解决方法是使用类似分布函数的函数,这种方法没有增加函数的参数,而是将this对象作为函数apply方法的第一个参数。通过这种方法,可以将内部函数bind到this上,它将与外部函数拥有同样的this对象。

     1 function bind(func,object){
     2     return function(){
     3       return func.apply(object,arguments);
     4     };
     5 }
     6 
     7 var x=[];
     8 var pushX=bind(testArray.push,testArray);
     9 pushX("A");
    10 pushX("B");
    11 x;
    12 //输出["A","B"]


    或者是下面更简单的写法

    function method(object,name){
        return function(){
            object[name].apply(object,arguments);
        };
    }
    var pushX=method(x,"push");
  • 相关阅读:
    技术学习之分析思想
    测试类的必要性
    Webstorm配置运行React Native
    React Native
    npm太慢, 淘宝npm镜像使用方法
    数据库设计那些事儿
    Linux 安装nodejs
    Java
    解决 vmware workstations 14 开启虚拟机黑屏
    编程与盖楼的思考
  • 原文地址:https://www.cnblogs.com/s-z-y/p/4490540.html
Copyright © 2020-2023  润新知