js对象内调用自身属性 this调用不到

在js的对象里,调用自身属性,不知道如何调用


const path = require('path');


module.exports = {

    assetsDirName: 'dist',

    assetsRootPath: path.resolve(__dirname, '../', this.assetsDirName)

};

大家帮忙看看指点一二


不负相思意
浏览 1494回答 1
1回答

慕田峪9158850

var test={a:1,b:this.a}console.log(test.b)来来来,你说一下 test.b 等于多少?不要想当然自意识认为一个东西,用一个东西首先要去了解这个东西,this 是什么?首先我们需要得出一个非常重要一定要牢记于心的结论,this的指向,是在函数被调用的时候确定的。为了你更直观的理解,我们先来看看这个 demo: var a = 'global'        var path = {        a: 'path',        resolve: function(parm) {            console.log(parm)            console.log(this)        }    }    var obj = {        a: 'obj',        b: path.resolve(this.a)    }看看输出结果你明白了什么?是不是什么也没明白。其中的 this.a 中的 this 是全局对象,如果全局对象是 window,那么这个 this 就是 window 对象,如果全局在 node 环境下,那么这个 this 就是 global 对象。关于全局对象的 this,它是一个比较特殊的存在。全局环境中的 this,指向它本身。因此,这也相对简单,没有那么多复杂的情况需要考虑。// 通过this绑定到全局对象this.a2 = 20;// 通过声明绑定到变量对象,但在全局环境中,变量对象就是它自身var a1 = 10;// 仅仅只有赋值操作,标识符会隐式绑定到全局对象a3 = 30;// 输出结果会全部符合预期console.log(a1);console.log(a2);console.log(a3);你说说你这个代码里面的 this 是指向 path 还是 全局对象 window 或者 global 呢?反正不是指向 module.exports,所以就得不到你想要的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript