一站式进货平台网站建设,为什么做网站编辑,无锡知名网站,沈阳做网站制作的公司被js的这几个方法搞的this晕头转向#xff0c;下定决心搞清楚#xff1b;1、call( )和apply( ):两者都可以将函数绑定到另外一个对象上去运行#xff0c;只是参数的传递方式不同#xff0c;两者都可以使当前函数拥有另一个对象的属性和方法#xff0c;实现js下的继承…被js的这几个方法搞的this晕头转向下定决心搞清楚 1、call( )和apply( ):两者都可以将函数绑定到另外一个对象上去运行只是参数的传递方式不同两者都可以使当前函数拥有另一个对象的属性和方法实现js下的继承 call( ): a.call( b[arg1,arg2....] ) 所有函数内部的this指针都会指向b如果没有bthis指针会指向Global 实现了a继承的b的属性和方法 apply( ) : a.fn.apply(b , arguments); a的fn方法加载到b上调用this指向b 2、caller : 在一个函数调用另一个函数时被调用函数会自动生成一个caller属性指向调用它的函数对象。如果该函数当前未被调用或并非被其他函数调用则caller为null。 3、callee : 当函数被调用时它的arguments.callee对象就会指向自身也就是一个对自己的引用。 由于arguments在函数被调用时才有效因此arguments.callee在函数未调用时是不存在的即null.callee且解引用它会产生异常; 可以用来递归计算验证参数 var sum function(n){ if (n 0){ return 1; } else { return n arguments.callee(n - 1) } }转载于:https://www.cnblogs.com/winterRel/p/5112425.html