zoukankan      html  css  js  c++  java
  • 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");
  • 相关阅读:
    Zju1876 Edit Step Ladders
    Candy糖果盒
    哈希
    最长上升子序列 nlogn
    电费结算
    【luoguP5656】二元一次不定方程(gcd,exgcd,裴蜀定理,不定方程初步)
    DP技巧
    高精
    【CSP烤前注意】
    [Jsoi2015] 种花
  • 原文地址:https://www.cnblogs.com/s-z-y/p/4490540.html
Copyright © 2011-2022 走看看