天天看點

call apply bind區分

    //call  apply  bind  相同點this指向發生改變

            var obj1={

                name:"obj1",

                sayhello:function(){

                    console.log(this);

                },

                add:function(x,y){

                    console.log(x+y);

                }

            };

            var obj2={

                name:"obj2",

            };

            //不同點

            obj1.add.call(obj2,1,2); //傳的是參數清單

            obj1.add.apply(obj2,[1,2]);//傳的是數組

            obj1.add.bind(obj2,1,2)();//寫法一    bind加()才會被調用

            obj1.add.bind(obj2)(1,2);//寫法二