javascript中函数this的问题
一个函数被html元素调用,函数里的this是指向该html元素的,那么该函数里如果在调用另一个函数时,这个函数离得this指向谁,也是上一个函数的html元素吗,为什么...
一个函数被html元素调用,函数里的this是指向该html元素的,那么该函数里如果在调用另一个函数时,这个函数离得this指向谁,也是上一个函数的html元素吗,为什么,我记得函数里调用函数(a(){b()}),后一个函数(b())的调用对象不是window对象吗?
展开
1个回答
展开全部
js有点特殊。不但要看上下文,还要看谁调用的,怎么调用。
因为js是动态语言,既有面向对象特性,又有函数式特性。它可以将一个object属性和方法随时修改,同时声明的出的类本身不但是类,可以被继承和实例化,而且就是一个对象,特别是还有prototype这个属性,比较复杂。
建议你百度一下 js中this的用法,
首先写在html标签中传入的this是指html元素,比如
对应处理函数function fa(object){}
这个object就指html元素
如果这个函数里还有this,就是指window对象。
(所有声明的函数默认是绑定在window对象上的,而window对象可以省略。)
如function fa(object){this.x=1}
等同于自动绑定:window.fa=function (object){this.x=1}
但如果这个函数是绑定在另外一个对象上的,比如
o={}
o.fb=fa
o.fb();
o.x=2
这时候是x是o的x属性2。
因为js是动态语言,既有面向对象特性,又有函数式特性。它可以将一个object属性和方法随时修改,同时声明的出的类本身不但是类,可以被继承和实例化,而且就是一个对象,特别是还有prototype这个属性,比较复杂。
建议你百度一下 js中this的用法,
首先写在html标签中传入的this是指html元素,比如
对应处理函数function fa(object){}
这个object就指html元素
如果这个函数里还有this,就是指window对象。
(所有声明的函数默认是绑定在window对象上的,而window对象可以省略。)
如function fa(object){this.x=1}
等同于自动绑定:window.fa=function (object){this.x=1}
但如果这个函数是绑定在另外一个对象上的,比如
o={}
o.fb=fa
o.fb();
o.x=2
这时候是x是o的x属性2。
更多追问追答
追问
我问的是function a(){b(this)}
(html元素)obj.set(),这时b()函数里的this指向谁,也是obj对象吗,为什么
追答
你给的函数又没执行,怎么看得出来指向谁。obj.set()又是指什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询