Javascript 在导入的对象中访问VM

Javascript 在导入的对象中访问VM,javascript,ecmascript-6,Javascript,Ecmascript 6,有这样一个组件: import { someData } from 'someData.js' export default { data() { return { foo: 'bar', someData: someData } } } export const someData = { someObject: { test: this.foo // How can I

有这样一个组件:

import { someData } from 'someData.js'

export default {
    data() {
        return {
            foo: 'bar',
            someData: someData
        }
    }
}
export const someData = {
    someObject: {
        test: this.foo // How can I access foo from the component, where this object is imported from? This is not accessable.
    },
}
someData.js:

import { someData } from 'someData.js'

export default {
    data() {
        return {
            foo: 'bar',
            someData: someData
        }
    }
}
export const someData = {
    someObject: {
        test: this.foo // How can I access foo from the component, where this object is imported from? This is not accessable.
    },
}

如何访问someData.js中的this.foo

您可以改为导出函数,并将值作为参数传递:

import { getSomeData } from 'someData.js'

export default {
    data() {
        return {
            foo: 'bar',
            someData: getSomeData('bar')
        }
    }
}
someData.js

export const getSomeData = foo => ({
    someObject: {
        test: foo
    },
})

这是不可能的,在调用
data()
方法之前先构造
someData
对象。您还需要将其设置为函数,并接受
foo
作为参数:

export function makeSomeData(foo) {
    return {
        someObject: {
            test: foo
        },
    };
}

这对我来说仍然不起作用。您需要将其设置为getter函数,或者在使用
foo
属性构造对象后调用它:

export default {
    data() {
        var obj = {
            foo: 'bar',
        };
        obj.someData = makeSomeData(obj.foo);
        return obj;
    }
}

我认为这是不可能的。你需要它做什么?组件正在获取一些分析数据。js是一个highcharts配置对象,需要从组件中的计算属性获取这些分析数据。