问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js中this关键字如何应用?

发布网友 发布时间:2022-03-23 00:04

我来回答

3个回答

热心网友 时间:2022-03-23 01:33

网上说起来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执行的返回值了。

热心网友 时间:2022-03-23 02:51

js和java、C#之类的语言不同,服务器的编程语言是面向对象的结构,js是基于对象,也就是说最高层的对象是window对象,如果说直接定义了一个function 那就相当于在window对象下面扩展了一个方法或属性 问题二也就是说你定义了一个 test的变量,同时又指向了 getFullname的方法,那么在调用的时候实际就是 window.test() 在window对象下有个fullname的属性,这个时候this的作用域是 window,所以就找到了window下面的属性 问题3 简单的来说,谁调用的方法 this就是谁,this属性是隐世的传递,如果想要改变this的 作用域 则使用 方法名.call(第一个参数就是this)

热心网友 时间:2022-03-23 04:26

你说的没错,‘this’就是指向调用其方法的对象,所以person.prop.getFullName()是person.prop调用了getFullName(),获得的是person.prop的fullname,也就是Jane了

var test= person.prop.getFullName 注意这句是没有括号的,person.prop.getFullName是一个function,所以test也会是一个function类型,而实现内容是和person.prop.getFullName一样的,但没有任何调用关系,也就是说,这句话等同于:

var test= function() {

   return this.fullname;

}

你这么看的话,如果用了test(); 就等于是调用了同级的fullname,就是Anna了

不是很懂你这一问的意思,不过不加()的话,只是一个function类型,他代表了一段代码的实现,但不会去执行这段代码,加了()就是调用执行这个方法

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... java 的this的运用? java 中的this关键字的几种用法 java中this的关键字用法是什么? C#中this关键字的作用是什么? 简要说明super关键字和this关键字的用法 3. this关键字可以用来调用哪些结构,简单说明一下其使用? this关键字主要应用于哪些场合? this关键字有什么用? 没有耳机孔的手机有哪些 为什么小米手机没有耳机却显示插了耳机 小米11没有耳机孔怎么办? 小米手机以后就没有耳机孔了吗 小米9se,OPPO k3,哪个好? 小米手机为什么没有耳机孔,有什么好处? 现在小米手机是不是都没有耳机孔 自己的手机号码忘记了,又没有话费了,怎么才能知道号码?_问一问 我的手机号没话费了怎么在手机上查看手机号 不知道手机号码怎么办 没话费不能打电话 手机没有话费不知道号码怎么办 如果手机没话费了怎么查本机号码 java中this关键字有什么作用,详细点,需要例子解析 java 中this关键字的作用是什么? javascript中this关键字是什么意思,在那些场合使用 java 中this关键字的作用,求详细的解答 Java中怎么使用this关键字?什么时候可以使用? this和super 关键字有什么作用 简述Java中This和 Super关键字的使用 关于JAVA中this的应用 C#:关于this关键字的作用 Java中怎么使用this关键字,和在什么时候可以使用.内容越详细越好.我在这里先谢过了...... 华为miracast投屏在哪 如何找到手机的MIRACAST 手机的Miracast功能在哪 华为mate7中的“miracast”选项在哪设置? 华为手机的无线显示功能怎么使用 华为如何找到miracast 华为mate7中的miracast选项在哪 华为8Amiracast设置在哪? 华为的无线投屏怎么用 华为手机如何连电视