关于js中的this关键字

作者&投稿:有饱 (若有异议请与网页底部的电邮联系)
js中this关键字如何应用?~

网上说起来js中的this,各种用法,但归根结底只有一点:this表示调用该函数的那个对象!换句话说,this所代表的,就是函数名前面的那个点之前的部分。当然,有些地方找不到点,但总是有一个对象在调用这个函数,而函数中的this,就表示这个对象。

getFullName是一个函数,问题(1)中的调用者是person.prop,所以getFullName函数中this在执行person.prop.getFullName()时就指向person.prop,this.fullname就是person.prop.fullname,就是Jane。

而var test = person.prop.getFullName,实际上就是把这个函数单独提出来,再给它起个名字。此时的test与person.prop没有任何关系,所以调用函数test,就不用考虑person.prop。

在浏览器中执行js,有一个潜规则,就是全局变量默认都是内置对象window的属性。所以,var test在全局作用域中,相当于window.test,就好像前面的var fullname = "Anna",就相当于window.fullname,还有person也是一个道理。所以,这里调用test(),等价于window.test(),这样就可以看出,test函数中的this,指向的是window,而window.fullname,它的值是Anna。

关于第三个问题,估计你是被var test = person.prop.getFullName所迷惑。实际上,这里的getFullName是一个函数,但js中函数也跟字符串、数字一样,可以当做变量赋值,所以这是一个赋值操作,函数后面没有加括号。而一旦加括号,就变成了函数调用,意义也就不一样了。不加括号,test和person.prop.getFullName是同一个函数;加了括号,test就变成了person.prop.getFullName执行的返回值了。

简单来说你看到的this就是指对象,比如我一个函数式这样的
obj.onclick=function()
{
alert(this.innerHTML)
}
this就是指obj,
在你的函数里面刚刚定义了this.length=0;所以第二个this指向是this
第三个函数你根本没有定义size的length,所以也是0

下面的那个MyInformation函数是一个类的声明,也就是说MyInformation是一个类的构造器,而它里面有一句this.show=show;
这一句的意思是这个类中有一个show方法(this.show),所谓方法就是类特有的一个函数,所以在show这个函数,其实是MyInformation类的一个方法,而show里面的this,当然指的是MyInformation这个类本身,而不是show.

这个例子,程序不应该这样写,这样写对于初学者可能不是很好理解,
实际应该把function show(){...}这个函数写到MyInformation的里面
也就是类似于:

function MyInformation(){
this.xxx=aaa;
this.yyy=bbb;
....
this.show=function(){
alert(this.info);
}
}

这样写的话你可能容易理解一点。当然我们还可以通过prototype原型构造器来构造这个方法,形如:

function MyInformation(){
this.xxx=aaa;
this.yyy=bbb;
....
}
MyInformation.prototype.show=function(){
alert(this.info);
}

这种方式,我给出的这两种方式都是js最标准的类的方法声明,你再找找相关的教程或例子。

下面是我的个人网站,里面有大量js教程,希望对你有所帮助:

简单来说你看到的this就是指对象,比如我一个函数式这样的
obj.onclick=function()
{
alert(this.innerHTML)
}
this就是指obj,
在你的函数里面刚刚定义了this.length=0;所以第二个this指向是this
第三个函数你根本没有定义size的length,所以也是0


js中的this是什么意思?
在JavaScript中,this代表着当前正在执行的函数或方法的上下文。它可以是全局对象(在浏览器中为window),也可以是对象或函数本身。当函数被调用时,this指向调用该函数的对象或上下文。在不同情况下,this的指向会发生变化。例如,在对象中调用函数时,this指向该对象,而在全局作用域中调用函数时,this指...

js this是什么意思?
在JavaScript中,this关键字指的是当前执行函数的上下文对象,也就是函数运行时的当前对象。当函数被调用时,JavaScript引擎会自动将this作为第一个参数传递给函数,并将它设置为调用该函数的对象。这个对象可能是全局对象(如果函数在全局作用域中运行),也可能是调用该函数的对象(如果函数是作为对象的方法...

js中this是什么意思?
js中this指的是什么?在JavaScript中,this是一个关键字,可以认为是一个指向当前作用域中对象或函数的指针。在不同的上下文环境中,this指向的对象是不同的,可以是全局对象、函数的局部对象或者是被调用的对象本身。它的值是在函数被调用时确定的,而不是在函数定义时确定的。this的作用在于发挥上下文...

js中this代表什么意思?
第一个this.name指的是变量name(对应var name="The Window"这个),第二个this.name指的是object这个map里面的name,this指的是object这个map对象。this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况:情况一:纯粹的函数调用 :这是函数的...

js中this代表什么意思?
JavaScript 中的 this 一直是容易让人误用的,尤其对于熟悉 Java 的程序员来说,因为 JavaScript 中的 this 与 Java 中的 this 有很大不同。在一个 function 的执行过程中,如果变量的前面加上了 this 作为前缀的话,如this.myVal,对此变量的求值就从 this 所表示的对象开始。this 的值取决于 ...

js下的this有哪些用法
this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,function test(){ this.x = 1;} 随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。下面分四种情况,详细讨论this的用法。情况一:...

javascript中的this到底指什么?
JavaScript:this是什么?定义:this是包含它的函数作为方法被调用时所属的对象。说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它!1、包含它的函数。2、作为方法被调用时。3、所属的对象。看例子:function to_green(){ this.style.color="green";} to_green...

JS中this关键字的解释
那这个this,就是这个方法运行的活动范围了。 方法里this当前这个方法运行的上下文,但上下文不仅限于this(就是个体与整体的区别)。 第二种风格的this关键字解释 this关键字 每一个方法或函数都会有一个this对象,this对象是方法(或函数)在执行时的那个环境,也可以说是这个函数在那个作用域下运行的...

JS中this指向的几种函数调用方法的介绍
javascript中this总是指向一个对象,但具体指向谁是在运行时根据函数执行环境动态绑定的,而并非函数被声明时的环境。除去不常用的with和eval的情况,具体到实际应用中,this指向大致可以分为以下4种。作为对象的方法调用当函数作为对象的方法被调用时,this指向该对象:var person = { name: 'twy', get...

请教解释一个关于javascript中this的函数。
“通俗易懂些”说说我的理解。js函数是一种对象。new关键字可以将一个函数对象实例化为一个新的对象。被实例化后,源对象内的this将指向这个新的对象,否则如没有用new实例化则this指向默认的顶层对象window。如Test()和new Test()两者的区别:前者仅仅执行一次,this指向window,后者不仅执行一次而且...

兴隆台区13650112044: 如何理解 JavaScript 中的 this 关键字 -
谷琼永瑞: 方法/步骤<br>在编程语言里,同样也有“我”的概念,那就是this关键字.每一个定义的方法里,都会有一个this关键字,这个this关键不是由在那儿定义的来决定的,而是由谁来执行的决定的.这是判断this关键表示什么的重要原则.比如:<br>...

兴隆台区13650112044: js中this的定义 -
谷琼永瑞: 你给的示例中的this不是指向formList,是指向当前遍历到的对象.<br><br>this是Javascript语言的一个关键字.<br>它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如,<br>function test(){<br>this.x = 1;<br>}<br>随...

兴隆台区13650112044: js中this代表什么意思? -
谷琼永瑞: JavaScript 中的 this 一直是容易让人误用的,尤其对于熟悉 Java 的程序员来说,因为 JavaScript 中的 this 与 Java 中的 this 有很大不同.在一个 function 的执行过程中,如果变量的前面加上了 this 作为前缀的话,如this.myVal,对此变量的求值...

兴隆台区13650112044: 如何理解 JavaScript 中的 this 关键字 -
谷琼永瑞: this的查找this的查找是很多人迷茫的一点,也似乎有很多人抱有this不稳定这样的看法,实在令人无语.this的查找可以说是3种对象查找中最为简单的,因为其实this对象的确定根本...

兴隆台区13650112044: js中this到底是啥意思啊? -
谷琼永瑞: 第一个this.name指的是变量name(对应var name="The Window"这个), 第二个this.name指的是object这个map里面的name,this指的是object这个map对象.this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,...

兴隆台区13650112044: js中的this代表的什么意思 -
谷琼永瑞: 代表当前的对象, 传进去方法时可以用this代表当前的元素标签.在js代码里this,代表当前引用对象

兴隆台区13650112044: JavaScript 中 this关键词 下面例子中的this指的是什么? -
谷琼永瑞: this指的是a标签对应的对象,这两个标签不同,那么this所指代的对象当然也不同,弹出来的是这个对象的名称而已,他俩指向的链接相同,所以弹出来的内容也相同.

兴隆台区13650112044: 请问javascript中function里的this是什么意思 -
谷琼永瑞: this关键字 就是把本身作为一个对象 然后添加属性和方法

兴隆台区13650112044: javascript中 关键词this的用法
谷琼永瑞: 就是当前类的一个引用... 通常用在类中...

兴隆台区13650112044: javascript中的this到底指什么? -
谷琼永瑞: JavaScript:this是什么? 定义:this是包含它的函数作为方法被调用时所属的对象. 说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它! 1、包含它的函数.2、作为方法被调用时.3、所属的对象. 看例...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网