//测试结果用 function assert(aBoolean, msg) { if (aBoolean && msg) document.write(msg + "<br/>"); } /*----------------------------- javascript中this比较搞,this是指函数的调用者 */ //功能很简单,返回this function creep() { return this; } //所有直接定义的函数其实都是window的方法,creep()等于window.creep(), //而this指的是调用creep的对象,这里就是window window.assert(creep() === window, "creep()===window"); //函数有括号是执行,没括号是赋值,不会执行函数,这就造成了如下的区别 var sneak = creep;//sneak指向creep这个函数,即sneak()与creep()效果一样。 var sneak2 = creep();//sneak2指向creep()返回的this assert(sneak() === window, "sneak()===window"); assert(sneak2 === window, "sneak2===window"); //ninja1对象的move属性指向creep函数 var ninja1 = { move : creep //即move : function(){return this;} }; //ninja1.move()返回的是ninja1对象,因为函数的调用者是ninja1 assert(ninja1.move() === ninja1, "ninja1.move()===ninja1"); var ninja2 = { move : ninja1.move }; //ninja2.move()返回的是ninja2对象,因为函数的调用者是ninja2 assert(ninja2.move() === ninja2, "ninja2.move()===ninja2"); /*----apply()和call()函数-----------*/ function sum() { var result = 0; for ( var n = 0; n < arguments.length; n++) { result += arguments[n]; } this.result = result; } sum(1, 2, 3, 4); //apply()和call()区别参数传入方式 sum.call(ninja1, 1, 2, 3, 4); sum.apply(ninja2, [ 1, 2, 3, 4 ]); //this分别指不同的对象 assert(window.result === 10, "window.result===10"); assert(ninja1.result === 10, "ninja1.result===10"); assert(ninja2.result === 10, "ninja2.result===10"); function forEach(list, callback) { for ( var n = 0; n < list.length; n++) { callback.call(list[n], n); } } var cb = function(index) { assert(this == weapons[index], "Got the expected value of " + weapons[index]); } var weapons = [ 'shuriken', 'katana', 'nunchucks' ]; forEach(weapons, cb);
相关推荐
JavaScript中this的指向还没搞明白?来这看看 你就懂啦~
Javascript 中 this指向
JavaScript 中的 this 关键字是一个非常重要的概念,它经常会使开发者感到困 惑。通常来说,this 的值是在函数被调用时确定的,其值取决于函数被调用的方 式。本文将介绍 JavaScript 中 this 的用法,从而帮助开发者...
this指触发事件的对象,接下来为大家分享下javascript中onclick(this)的用法,感兴趣的朋友可以参考下哈,希望对你有所帮助
JavaScript程序设计javascript中this的指向问题共6页.pdf.zip
详解Javascript 中的this指针
NULL 博文链接:https://wv1124.iteye.com/blog/505231
高手详解javascript中的this指针
JavaScript中this的使用,简单理解,快速学会
JavaScript中this指向.pdf
JavaScript中this指向.docx
复习JavaScript中this指向及绑定
Javascript的this用法
JavaScript 中的this 总是让人迷惑,应该是js 众所周知的坑之一。 个人也觉得js 中的this 不是一个好的设计,由于this 晚绑定的特性,它可以是全局对象, 当前对象,或者…有人甚至因为坑大而不用this。 其实如果...
探寻JavaScript中this指针指向_.docx
javascript 中关于 this 的用法.zip
详解JavaScript中this关键字的用法_.docx
JavaScript中的this指向.md
详解Javascript 中的this指针
详解javascript中的this对象.docx