var Bind = function(object, fun) {
return function() {
return fun.apply(object, arguments);
}
}var Each = function(list, fun){
for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};
javascript 函数无名称,表示不舒服,用强类语言习惯了;1.请问那个fun.apply()是怎么会是?我在文档中没有发现 FUN这个函数?
2.请问该函数什么逻辑意思?

解决方案 »

  1.   

    return:
    NO.1 将方法“fun”绑定到对象“object”,并返回具有了方法“fun”的“object”。
    such as:<script type=javascript>
    var Bind = function(object, fun) {
    return function() {
    return fun.apply(object, arguments);
    }
    }var obj = {};
    function fuc(x,y,z){
        alert(x);
        alert(y);
        alert(z);

    Bind(obj,fuc)(1,2,3);
    </script>
    NO.2 遍历数组列表“list”,并按照下标顺序将list元素和下标号一一对应作为参数循环调用方法“fun”进行样式设置、鼠标事件绑定等等你所需要的功能处理。看结构应该调用于document.getElementById("*")和document.getElementsByTagName("*")的场合多些。至于,你“用强类语言习惯了”、“我在文档中没有发现 FUN这个函数?”的提问,着实雷人,LOL。
      

  2.   

    可惜我还是对第一个函数不理解~~。apply()不也是一个方法?这个调用确实~刚接触不了解
      

  3.   

    Function.applyapply 方法能劫持(<<Ajax in Action>> 书中用到"劫持"一语,很生动啊)另外一个对象的方法, 继承另外一个对象的属性。 
      

  4.   

    apply是为fun方法指定一个拥有者
      

  5.   


    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script type=text/javascript>
    var funX = function(x, y, z){
          alert(x);
          alert(y);
          alert(z);
    }
    var funY = function(){
          funX.apply(this, arguments)}
    funY("就这样", "对象funX冒充了对象funY,或者说对象funY劫持了对象funX的方法", "这很简单的基础概念,您明白了吗?")
    </script>