发布网友 发布时间:2022-03-23 00:04
共3个回答
热心网友 时间:2022-03-23 01:33
网上说起来js中的this,各种用法,但归根结底只有一点:this表示调用该函数的那个对象!换句话说,this所代表的,就是函数名前面的那个点之前的部分。当然,有些地方找不到点,但总是有一个对象在调用这个函数,而函数中的this,就表示这个对象。热心网友 时间: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类型,他代表了一段代码的实现,但不会去执行这段代码,加了()就是调用执行这个方法