var returns = function(){return fn.apply($pick(options.bind,fn),args);};  先说$pick(options.bind,fn) 是一个函数调用并且有一个返回值, 我想一定是返回一个对象。  而这个$pick方法有需要两个参数“所以在返回的时候应该还带有bind自身的属性或方法 ”  要看$pick逻辑返回来是那个对象。
怎么在用函数的使用调用bind中的方法了。 没有看明白你表达的意思?

解决方案 »

  1.   

    他是判断options.bind是不是object  还有这不是判断options.bind是不是object,而是判断options.bind存在不。
      

  2.   

    var returns = function(){return fn.apply($pick(options.bind,fn),args);};  apply 应该是用于继承机制吧 我觉得是: 让fn类c继承$pick()函数中类的一个方法,然后把这个方法指向 returns 不知道对不对
      

  3.   

    $pick(options.bind,fn),这个其实就是想返回fn.也就是当前函数。这一点通过下边代码可以看出。...
    utils.merge = function()      //把所有参数的属性合并到一个新的对象,并且返回这个新的对象
    {
        var mix = {};
        for(var i = 0;i < arguments.length;i++)
        {
            for(var property in arguments[i])
            {
                var ap = arguments[i][property];
                var mp = mix[property];
                if(mp && utils.getType(ap) == 'object' && utils.getType(mp) == 'object')mix[property] = utils.merge(mp,ap);
                else mix[property] = ap;
            }
        }
        return mix;
    };...
    function $pick(obj,picked)  
    {
        return (obj != undefined) ? obj : picked;
    };...
    另外lz的"怎么在用函数的使用调用bind中的方法了  不明白 ",lz看一下bind其实是options中的一个属性。
      

  4.   

    恩 是把$pick看错了,但是好象并不影响继续往下理解吧,虽然是错误的理解
    to 3 不是继承 是options调用fn(也就是函数)的方法我的问题在这个地方
    return fn.apply($pick(options.bind,fn)
    我以为返回的是个options这个类,他带有一个方法是fn函数
    结果这是错误的
    它只是返回 options执行函数fn的结果 (这样理解应该没错吧,如果错了请指出)还有点问题
    只能用类里面的参数吗?
    就象这样
    var gg = function(){
    document.getElementById('ss').innerHTML = arguments[0];
    }.create({bind:'aa',arguments:'cc',delay:2000})() 
    //在上面发的程序的前面加个<div id='ss'></div>就可以运行了
    我想知道可不可以用函数的时候直接用参数,也就是不用var gg =function()..这样写,直接调用函数和函数的方法
    //上面的东西是可以直接调试的