函数的this指向不可以更改?

JS基础系列-聊聊this

1、JavaScript:this是什么?定义:this是包含它的函数作为方法被调用时所属的对象。说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它!包含它的函数。作为方法被调用时。

2、this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况:情况一:纯粹的函数调用 :这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。

3、一个基本概念:普通函数的 this 指向不是在定义的时候确定,而是在调用的时候确定。两个注意事项:接下来从一般形式函数调用、方法调用、apply 和 call 调用、箭头函数、class 等理清指向问题。

小程序的this指向问题

解决办法 为复制一份this的指向到变量中,这样在函数执行过程中虽然this改变了,但是that还是指向之前的对象。

这段js在小程序中是同样有效的,所以window对象确实存在。window对象中包含了很多对象,如wx、Page、Component、Behavior等变量,你可以试试看。不过在严格模式下,this就指向了undefined。而且es6转es5时也默认开启了严格模式。

问题应该是出在this,程序运行到这里,this的指向很可能已经发生了改变(这是js众所周知的毛病,除非你改用ES6的新式写法),不再是当前Page了,所以this.data就出错了,自然而然this.data.deviceId也无效了。

然后把this输一下是undefined,因为这个时候this指向的是当前wx对象,而wx对象没有setData,我们应该将this的指向修改为page对象 只要把success改成箭头函数就ok啦。。

需要注意的是,在 wx.request 回调里直接使用 this.setData 会报错: 微信小程序中this指向作用域问题this.setData is not a function报错 。

函数的this指向不可以更改?  第1张

js中new()如何改变构造函数返回值与this指向

js中的函数有两种调用方式,一种是通过普通的声明之后进行的调用。一种是通过new关键字进行构造调用。普通的调用就是依次执行函数内部的函数语句,如果有返回值则返回返回值,如果没有则函数内部的声明周期结束。

obj) ,改变this的指向,让this指向 obj 对象 ;4。判断Person的返回值类型,如果是引用类型,则返回这个引用类型的对象,如果是普通值类型,就返回obj;现在来看看打印出的内容:可以看出lisi这个实例对象的构造函数是Person。

这就是说zai fn()的作用域中,你也创建了一个a变量,赋值为50.在return 语句中, 里面的a还是属于fn() 作用域的。因为前面没有限定作用域的标识,比如this。

JS 函数被调用时 this 是指向 global(window)的。所以,你定时器里面的 this 和外面的 this 并不一样。

首先,var m = new test();用test构造函数来实例化一个对象。

...但是我改变了一个this指针的指向为什么后面都改变了

1、ptr指的是这个指针所指向的内存空间。就是指针指向的INT变量。看看swap函数,理解了就好。int temp;temp=*pt1;//把*ptr1指向的int变量的值赋值给TMEP pt1=*pt2;//把*ptr2指向的int变量的值赋值给×ptr1的内存空间。

2、同样,如果i是某个类的对象,一样不能改变i的地址,而this指针就是对象地址的别名,因此通常无法改变。我说“通常”是指在C++语言这个层面上是无法改变的,除非你对C++编译器编译完的目标代码进行修改。

3、实际上this本身就不固定, 何谈会改变呢? this是动态绑定的, 根据函数调用时的位置动态绑定this上下文的。要谈变化的话大概有以下几种几种情况。

4、这是因为集成开发环境有自动提示功能,在遇到“.”和“-”的时候能自动列出所有成员的名字,这样程序员就可以从列表里选择,不用一个一个字母输入了,而且不容易出现拼写错误,所以很多人就喜欢写“this-”了。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的前端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 14:16
下一篇 2023-09-23 14:16

相关推荐

发表回复

登录后才能评论