为什么要加上const objApp = this;

为什么要加上const objApp = this;

才去这里面去调用?请问html中,js中,vue中不同位置不同方法中的this指代的是什么?如何进行区分?

    ,mounted(){
        const objApp = this;
        const eid = sessionStorage.eid;
        const uid = sessionStorage.uid;
        axios.get("/api/user_info?uid=" + uid + "&eid=" + eid)
        .then(function(response){
            const json = response.data;
            json.data.nodeList.forEach(function (item){
                objApp.nodeList.push(item);
            })
            console.info(objApp.nodeList);
            objApp.employee = json.data.employee;
        })
    }
};



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2022-09-13 13:47:44

同学你好,1、在html中,this的用法是“this.元素”或是“某一方法(this)”等;this指针会自动给js函数绑定当前标签,这样便给给js函数绑定一个独一无二的id,减少重复代码的产生。

2、1)在JavaScript和vue中,this:表示当前对象的一个引用。

    2)this的指向:this不是固定不变的,是根据调用的上下文(执行时环境)改变而改变。如下所示:

  • 如果单独使用,this 表示全局对象。

  • 在方法中,this 表示该方法所属的对象。

  • 在函数中,this 表示全局对象。

  • 在函数中,在严格模式下,this 是未定义的(undefined)。

  • 在事件中,this 表示接收事件的元素。

3、此处将this赋值给objApp,是因为在ajax和axios中(axios是对ajax技术的一种封装)不建议使用this关键字(因ajax里使用的this是指的ajax本身这个对象,并不是ajax外面的对象),所以将其赋值给objApp。

https://img1.sycdn.imooc.com//climg/6320193a09d9c97805420214.jpg

祝学习愉快!

  • 提问者 程序员叶某 #1

    对“在事件中,this 表示接收事件的元素。”这句话理解不太清楚

     , methods: {
                onSubmit(forName) {
                    const form = this.$refs[forName];
                    form.validate((valid) => {
                        if (valid) {
                            console.log("表单校验成功,准备提交数据");
                            const form = this.form;
                            const $message = this.$message;
                            const params = new URLSearchParams();
                            params.append("username", form.username);
                            params.append("password", form.password);

    比如说上面这个onSubmit点击事件中,如何结合上面这句话该怎么分析它的指向?这里的两个this都是指向VUE对象吗?

    2022-09-13 14:22:47
  • 好帮手慕小尤 回复 提问者 程序员叶某 #2

    同学你好,在此处this指的是接收事件的元素,点击的那个元素,就是这个对象。

    祝学习愉快!

    2022-09-13 15:15:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师