天行健, 君子以自强不息
Sunny's Blog
Title

apply和call的用法

apply和call可以劫持其他对象的方法归自己所有

functionName.apply(newObj,[parm1,parm2])

functionName.call(newObj,parm1,parm2)

                    function test(a){ console.log(a)  }
                    var newObj = newObj||{}
                    test.apply(newObj,[7])  //print=7
                    //这段代码中newObj劫持了test方法归自己所有了
                
                    //如果用call
                    test.call(newObj,9)
                

                    //一段js文件的逻辑引用方式
                    /* GLOBAL JAVASCRIPT */
                    $(document).ready(function() {
                        Sunny.init();
                    });

                    // Global namespace
                    var Sunny = Sunny || {};

                    (function($) {
                        "use strict";

                        this.init = function(){
                            ...
                        }
                        ...
                    }).apply(Sunny, [jQuery]);
                
这段代码很好的将js逻辑模块化,防止了对全局变量的污染

地势坤,君子以厚德载物