zoukankan      html  css  js  c++  java
  • 回调函数(二)

     有时候回调并不是一次性的匿名函数或全局函数,而是对象的方法。如果该回调方法使用this来引用她所属的对象,这可能会导致意想不到的行为。

     1 win.color = "#ffc000";
     2         // 重构findNodes() 以接受一个回调函数
     3         var findNodes = function(callback, callback_obj){
     4             var eles = doc.body.getElementsByTagName("*");
     5             var i = eles.length,
     6                 nodes = [],
     7                 found;
     8 
     9             // 检查回调函数是否为可调用的
    10             if(typeof callback !== "function"){
    11                 callback = false;
    12             }
    13 
    14             while(i){
    15                 i --;
    16                 // 复杂逻辑
    17                 
    18                 if(eles[i].nodeType == 1){
    19                     found = eles[i];
    20                 }
    21 
    22                 // 现在运行回调函数
    23                 if(callback){
    24                     callback.call(callback_obj, found);
    25                 }
    26 
    27                 nodes.push(found);
    28             }
    29             return nodes;
    30         };
    31         
    32         var myapp = {};
    33         myapp.color = "green";
    34         myapp.paint = function(node){
    35 
    36             node.style.color = this.color;
    37             console.log(this); 
    38         };
    39         // myapp.paint();// "green"
    40 
    41         findNodes(myapp.paint, myapp);
  • 相关阅读:
    day44
    day38
    day37
    day36
    作业35
    day35
    作业34
    day34
    day33
    Windows API 第三篇
  • 原文地址:https://www.cnblogs.com/chuyu/p/3457572.html
Copyright © 2011-2022 走看看