function show(){
this.a="1";//我的理解是 这里的 this 指bb
alert(this.a+this.b+this.c+this.d);//显示"1undefinedundefinedundefined"
show2();
function show2(){
this.b="2";
alert(this.a+this.b+this.c+this.d);// 显示 "undefined2undefinedundefined" 为什么 this.a 是 undefined ......
show3();
function show3(){
this.c="3";
alert(this.a+this.b+this.c+this.d);//显示 "undefined23undefined" 这里 为什么 不是 "undefinedundefined3undefined"
show4();
function show4(){
this.d="4";
alert(this.a+this.b+this.c+this.d);//显示 "undefined234" 为什么 this.a 都是 undefined
}
}
}
var bb=new show();
刚看到网上有人对这个问题的讨论,自己的分析如下
关键点:
一般没有为函数指定调用者的时候,this指的就是全局变量this
this.a="1";//我的理解是 这里的 this 指bb
alert(this.a+this.b+this.c+this.d);//显示"1undefinedundefinedundefined"
当走到这一步的时候,当前的this应该指向的是 bb这个对象
this.b="2";
alert(this.a+this.b+this.c+this.d);// 显示 "undefined2undefinedundefined" 为什么 this.a 是 undefined ......
show2();
当调用show2的时候,并没有为show2指定调用者,这个时候函数里面的this应该指向的是window.
可以换一种写法,可以更加清晰的显示:
function show(){
this.a="1";//我的理解是 这里的 this 指bb
alert(this.a+this.b+this.c+this.d);//显示"1undefinedundefinedundefined"
this.show2 = function (){
this.b="2";
alert(this.a+this.b+this.c+this.d);// 显示 "undefined2undefinedundefined" 为什么 this.a 是 undefined ......
this.show3=function (){
this.c="3";
alert(this.a+this.b+this.c+this.d);//显示 "undefined23undefined" 这里 为什么 不是 "undefinedundefined3undefined"
this.show4=function (){
this.d="4";
alert(this.a+this.b+this.c+this.d);//显示 "undefined234" 为什么 this.a 都是 undefined
}
this.show4();
}
this.show3();
}
this.show2();
}
var bb=new show();
分享到:
相关推荐
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
具体来看,这段代码中有一个HTML的输入框元素,其id属性为“myinput”,并且初始值设置为“javascript中onclick中的this”。当用户点击这个输入框时,会弹出三个警告框(alert),分别显示以下信息: 1. [object ...
通过传递不同的对象作为第一个参数给`.call()`或`.apply()`方法,可以控制`this`的指向。 ##### 6. 箭头函数中的`this`行为 箭头函数不绑定自己的`this`值,而是继承自外围函数或者全局作用域。这意味着箭头函数中...
在JavaScript编程语言中,...总结起来,JavaScript中的this用法是多样的,理解其行为并学会在不同场景下正确使用this是JavaScript开发者必备的技能。通过深入学习和实践,你将能够更有效地控制代码中的对象和函数行为。
在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用当前上下文中的对象。`this`的值在运行时确定,并且根据函数被调用的方式而改变。下面我们将深入探讨`this`的使用方法。 1. **全局作用域与浏览器...
这两个方法的第一个参数就是要指定的 `this` 值: ```javascript function test() { console.log(this === window); } var obj = {}; test.apply(obj); // false test.call(obj); // false ``` 在上述代码中,...
JavaScript中的`this`关键字是一个非常重要的概念,它用于在函数执行时引用当前上下文的对象。在JavaScript中,`this`的绑定遵循四个主要规则:默认绑定、隐式绑定、显式绑定和new绑定。让我们逐一深入理解这些规则...
- **对象方法**:当函数作为对象的一个方法被调用时,`this`指向调用该方法的对象。 - **构造函数**:在构造函数中,`new`关键字创建新对象并使`this`指向这个新对象。 - **call/apply/bind**:这三个函数允许...
在JavaScript编程中,`this`关键字是一个至关重要的概念,它表示当前上下文中的对象引用。在不同的场景下,`this`的指向会有所不同,这往往让开发者感到困惑。以下是关于`this`指向问题的详细解释: 一、普通函数...
JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...
在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发中,我们经常使用jQuery来简化我们的代码,但是当我们...
- `apply()`方法接受一个`this`值和一个参数数组。参数数组的第一个元素是`this`值,其余元素是传递给函数的参数。 示例: ```javascript function sayColor() { alert(this.color); } sayColor.call(o); //...
JavaScript中的`this`关键字是一个非常重要的概念,它与许多其他编程语言中的行为不同,因此常常让开发者感到困惑。本文将详细解析`this`在JavaScript中的工作原理及其绑定规则。 1. `this`并不总是指向函数自身 ...
JavaScript中的`this`关键字是一个非常重要的概念,它在不同的上下文中具有不同的指向。理解`this`的指向对于编写高效和可维护的JavaScript代码至关重要。在本文中,我们将深入探讨`this`在各种函数调用场景下的行为...
`this`不是一个指向自身的指针,而是一个指向当前正在执行函数的上下文对象的指针。它会根据函数的调用方式动态地改变其指向的目标。 #### this的绑定规则 `this`的指向取决于函数是如何被调用的。主要分为四种...
当我们谈论类的继承时,我们指的是一个类(子类)可以获取另一个类(父类或超类)的属性和方法,从而实现代码复用和扩展。在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,...
在JavaScript编程中,`this`关键字是一个非常关键的概念,它表示当前上下文中的对象引用。在不同的场景下,`this`的指向会有所不同,这在理解JavaScript运行机制时非常重要。以下将详细介绍标题和描述中提到的`this`...
当使用call、apply方法显式地调用函数时,可以通过它们的第一个参数来改变函数内this的指向。这个参数代表了函数执行时this的值。如果没有指定参数,call和apply默认将this绑定到全局对象window。例如,可以使用...
在JavaScript中,`this`关键字是一个经常被讨论的话题,因为它在不同的上下文中具有不同的含义。`this`关键字是动态绑定的,也称为运行期绑定,这意味着它会根据函数调用的方式和所在的上下文来改变其指向。这种动态...