猫史档案馆


【求助贴】JS里面this有啥用啊()

用户:yee剑走天下yee剑走天下查看:188 回复:4 评论:22 创建时间:2022-06-28T19:11:19


那个this是有啥用的啊())()(()

看别人代码里面一堆this,搞不懂啥意思())(()

awa谁能告诉我


回复

上一页第 1 页 / 共 1 页下一页
蓝矮爱乐蓝矮爱乐

在函数之外就指全局变量,在函数之内表示这个变量,例如:

this//这里的this表示全局对象

entity.c=function(){
    this.player.directMessage('你好!')//这里的this代表entity
}

点赞0


评论

注:this在箭头函数里面是无效的

还有,this在严格模式下是undefined

那为啥要写成this.player.name呢?直接写entity.player.name不更好吗?())(

还有些代码我看不懂()就比如说function give(money, name) {this,money = money;this.name = name}。这又是啥意思())()(

如果用了entity.属性=这个函数的话,那么this代表entity,否则代表局部变量

所以这个this是代表的意思吗?那this.name = name的this指的又是啥?()()()()

存储局部变量的对象,可以用this.variable声明变量

啥叫局部变量?()

一个只能用在这个函数之内的变量,用在这个函数之外就会出错

这就是个构造函数,建议百度构造函数进行学习

在函数没有entity实参时,可以用this获取这个对象(entity)

当然,this不在一个对象里定义会触发语法错误

调用时用object.functionName()来调用

其他有什么不懂问我噢

谢谢()~

所以这个this是只能用在对象里面吗?

是的

在非对象中定义会报错的呢


源码极客源码极客

事实上

this这个关键词一般用于对象

可以用于在对象的构造函数里表示这个对象本身

点赞0


评论

那个啥()比如说有些代码里面的函数,这样我看不懂啥意思:function give(money, name) {this.money = money;this.name = name}这不是对象吧?()

这样就应该指的是give自己这个函数了

这里的this是用于使这个函数会改变形参的地址的值,没用就只是在函数内运算形参,地址的值不会改变


SCS_user_LoeheodVOQSCS_user_LoeheodVOQ

和python的self差不多

点赞0


评论

但还是有些区别


SKQASKQA

//在对象中的方法中,this表示对象本身
var obj={
    a:1919810,
    func:()=>{
        this.a=114514 //这里this就表示obj
    }
}
//func()其实是global.func(),所以this表示global
function func(){
    return this
}
//但是this更多用于class里
class Cls{
    constructor(){
        this.a=114514
    },
    a:114514
}
var hhhc=new Cls() //此时class里的this表示hhhc

点赞0


评论