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

关于JS的THIS

发布网友 发布时间:2022-04-07 05:53

我来回答

3个回答

热心网友 时间:2022-04-07 07:22

这个问题问到js的精髓了。

在js中,万物皆对象,函数只是对象的一种。

js的this,指代着当前对象的自身(itself),但通过你的问题的内容,发现,你关注的地方并不单单在this关键词。

function a(value){
this.value =value;
alert(this.vlaue);
}
上面的这个函数语句,意味着,创建了名字为a,参数为value的函数对象:
这个函数对象有一个来自于参数的动态属性value;
这个函数对象还有一个返回值为void的window内置函数alert;
这个函数对象自身没有返回值(void)。

alert(new a(1).value);
上面的这个语句,意味着,新建一个参数为1的a对象,并把这个对象的value作为参数赋值给window的alert函数,并执行window的alert函数。
在上面的语句中,测试时,会出现两次警告框,且警告框的内容都是1,这是因为在新建a对象的时候,执行了一次alert,拿到a对象的value后,又执行了一次alert。

alert(window.a(3));
上面的这个语句,意味着,把3作为window对象的a函数的一个参数,执行a函数。
在上面的语句中,测试时,也会出现两次警告框,但是第一次是3,第二次就是undefined了,这是因为,window.a(3)执行的时候,会alert一下,内容就是3,alert(...)执行的时候,因为里面的window.a(3)没有返回值,所以alert的参数就是没有,所以就导致弹出了一个“undefined”

function a(){
fucntion b(){}
return b;
}
new a()()
可以这么写(new a()())的原因是:
1、“new a()” ,这个是个对象创建过程,就是说,这样可以创建一个全新的函数对象。
2、第二个“()”,这个是个函数执行过程,就是说,加上一对“()”后,这个对象函数才开始执行。

a().b()
不可以这么写的原因是:
a()会让这个a函数对象执行后,返回的是一个名字为没有名字的空函数对象,这个空函数对象里面,并没有一个名字叫b的方法。
你如果想让上面的a里面的b函数顺利执行,可以参考下面的案例:
function a(){
function b(){alert(111)}
return b;
}
a()();//这样你就顺利的看到这个b函数执行了。

最后给你一个让你头晕的案例,呵呵。考虑一下是如何执行的,这个案例你完全搞明白后,基本上js的函数对象返回值问题,就不会再有了。
function a(){
this.b = function (){
return this.c = function(){
alert(111);
}
}
}
(new a().b())();

热心网友 时间:2022-04-07 08:40

this就是指当前对象,这在js的高级应用中相当重要。系统默认this指向window
对于 new a()(),我们把它拆开来看就很明了了:
var o = new a();
o();
首先创建一个类a的一个对象o,在js中你可以把一个对象当做一个函数来用,所以o()就是执行这个对象的函数体。
至于a().b()为什么不行呢?
这里的意思并不是调用a里面的b方法,如果你要调用a里面的b方法应当写成new a().b();在js中只有对象才能调用对象里面的方法,在js中类、函数、对象在代码中时看不出来的,只有在调用的时候才能区分出,就如你上面这个例子,我们可以说这是一个闭包(也就是函数里面嵌入函数),此时a是window下面的一个函数,b是嵌入在函数a里面的一个函数。但如果你new了a,那么此时a就是一个类了,但是此时b并不是a里面的方法,而是window下面的方法,在js中如果变量、函数你不申明属于谁,那么系统就默认为是在window下的,如果你要让b是a的方法,应当写成:
function a(){
this.b=function(){}
}
或者写成
function a(){
a.prototype.b=function(){}
}
希望可以帮到你,要学ExtJs,首先必须了解js面向对象,js水平不能再停留在我们简单表当验证了

热心网友 时间:2022-04-07 10:15

厉害1·
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国的联邦储备体系采用的中央银行制度是 什么是联储 打四合扣表面不能起印 四合扣四合扣安装工具 中国旅行社协会协会的主要任务 办公室的女同志都在议论ihush俏物悄语,ihush俏物悄语是什么啊? 老听有人说Ihush 俏物悄语,这个网站是干嘛的啊? ihush项链什么牌子-ihush项链掉色怎么办 姓李的要起名.用“米"或“豆字加偏旁有那些字 美国联邦储备委员会美国联邦储备委员会简介 全品团是什么? 什么是全品游 抖音送礼物带走女嘉宾是什么套路 js中的this怎样简单理解? JS 构造函数this指向问题 窨字是什么意思 酉字族的字有哪些 叩醒是什么意思 乔的字意是什么意思 请问有谁知道儒苑是什么意思? 歆是什么意思 踅是什么意思 翥月什么意思 歆是什么意思啊 敬辞类的词语的意思是什么? 寒舍和贵舍的区别 四五快读第六册字族字里画圈红圈的字什么意思? 字族识字有哪些 同一字族是什么意思? 古代常见的敬辞赐字族各指什么 深圳哪一家旅行社最好? 对于想去旅游,但是不想抱团,不跟团,大大管家能提出什么建议吗? 某酒店客房有三人间,双人间,三人间150元一天,二人间140一天,旅游团50人,五折,一天1510元 套全品京东后台看得到吗 全品大讲堂答案 关于2010.2.15号哈尔滨康辉旅行社港澳新马泰14日游的一些问题,曾经历过的请回答 关于法国自助游的问题 有谁有九上数学人教版电子版全品作业本呐?不是要答案! 九年级数学数学:某旅行社拟在暑假期间面向学生推出“临江红旗渠一日游”活动,收费标准如下: 英语全品七下作业手册答案微课6-7 求最新的硬币收藏价格表 婚前旅游采购钻戒手表包包,即将要结婚需要采购钻戒手表还有给老婆的包包! 全品学练考七年级下册数学51页当堂检测第三题 如何选择养老? 湖南省人力资源等级考试分为那几个等级?什么时候报名?什么时候考试? 现在几几年的人民币硬币最值钱? 经济师人力资源管理师可以办理人力资源服务许可证吗? 湖南省人事考试网怎么报名? 取消订单会把钱退还吗? 我退订业务后还会把钱返回不