//测试结果用 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`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
3. javascript中onclick中的this:这是调用obj.value得到的结果,显示了触发事件的元素的value属性值。 总结来说,在javascript中,onclick(this)的用法主要是将当前被点击的元素作为上下文对象传递给事件处理函数...
JavaScript中this的指向还没搞明白?来这看看 你就懂啦~
JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...
JavaScript中的`this`关键字是一个非常重要的概念,它与许多其他编程语言中的行为不同,因此常常让开发者感到困惑。本文将详细解析`this`在JavaScript中的工作原理及其绑定规则。 1. `this`并不总是指向函数自身 ...
JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...
在JavaScript中,`this`关键字是一个至关重要的概念,它在不同上下文中有着不同的指向。`this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是...
### 详解Javascript中的`this`指针 在深入探讨`this`指针之前,我们首先应当明确`this`在JavaScript中的基本概念与作用。`this`关键字在JavaScript中扮演了一个非常核心的角色,它是一个特殊的变量,用于引用调用...
在JavaScript中,`this`关键字是用来引用函数执行上下文中的对象。它的行为有时可能会让初学者感到困惑,但理解其工作原理对于编写高效和可维护的代码至关重要。下面我们将深入探讨`this`的使用和一些常见场景。 1....
### JavaScript 中 `this` 的用法详解 #### 一、引言 在 JavaScript 开发过程中,`this` 关键字的使用常常令开发者感到困惑。这是因为 `this` 的值并不是静态确定的,而是取决于函数调用的方式。了解 `this` 的...
这种特性使得this在JavaScript中具有了多重含义,对于初学者来说,确实是一个令人困惑的概念。 首先,需要明确的是,在JavaScript中,this关键字的指向不是在编译期确定的,而是在运行期确定的。这与大多数主流的...
JavaScript中的`this`关键字是一个非常重要的概念,它用于在函数执行时引用当前上下文的对象。在JavaScript中,`this`的绑定遵循四个主要规则:默认绑定、隐式绑定、显式绑定和new绑定。让我们逐一深入理解这些规则...
### JavaScript中this指向详解 #### 一、引言 在JavaScript编程中,`this`关键字的使用及其指向问题一直是困扰很多开发者的难点之一。不同于传统面向对象编程语言如Java或C#中的`this`概念,JavaScript中的`this`...
探寻JavaScript中this指针指向 JavaScript中的this指针指向是一个复杂的问题,需要深入了解JavaScript的函数调用机制和对象模型。这篇文章将深入探讨this指针指向的问题,并提供多个例子来说明this指针指向的规律。...
JavaScript中的`this`绑定是一个关键概念,涉及到函数调用、对象方法、构造函数等多个场景。`this`在JavaScript中并不像其他语言中的`this`那样简单地指向对象本身,而是根据函数调用的方式动态确定其指向。理解`...
### JavaScript中的`this`用法详解 在JavaScript中,`this`关键字的使用十分常见,但也是最容易引起混淆的部分之一。正确理解`this`的工作原理对于编写高效、可靠的代码至关重要。本文将深入探讨`this`在不同上下...
在JavaScript编程中,`this`关键字是一个至关重要的概念,它表示当前上下文中的对象引用。在不同的场景下,`this`的指向会有所不同,这往往让开发者感到困惑。以下是关于`this`指向问题的详细解释: 一、普通函数...
JavaScript中的`this`关键字是一个非常重要的概念,它在不同上下文中具有不同的指向,这使得`this`成为JavaScript灵活但有时也复杂的一部分。`this`的动态绑定特性在编写JavaScript代码时需要特别注意,因为它会影响...
在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发中,我们经常使用jQuery来简化我们的代码,但是当我们...