我可以枚举JavaScript模块的导出吗?
在下面的例子中,我可以枚举JavaScript模块的导出吗?,javascript,ecmascript-6,Javascript,Ecmascript 6,在下面的例子中,values是file-2.js中的普通对象吗 // file-1.js export { FOO, BAR } from '~/my-values'; // file-2.js import * as values from '~/file-1'; // what is `values` here? an object instance? 我问这个问题是因为我想使用类似于值的东西。hasOwnProperty('FOO')和rollup引发了以下错误: '
values
是file-2.js
中的普通对象吗
// file-1.js
export {
FOO,
BAR
} from '~/my-values';
// file-2.js
import * as values from '~/file-1';
// what is `values` here? an object instance?
我问这个问题是因为我想使用类似于值的东西。hasOwnProperty('FOO')
和rollup引发了以下错误:
'hasOwnProperty' is not exported by 'file-1.js'
附带问题:是否有一种使用导入和导出关键字测试代码的方便方法?据我所知,Chrome开发工具在代码片段中不支持它们。假设X.js如下:
export const t = 0;
export const t2 = 4;
export default w = -1;
var w3 = -9;
当您从X导入*作为Y时
基本上,您可以从该文件获得所有导出,并通过调用X.somevar来获得这些导出。
例如:
var t = X.t; // local t will be equal 0.
如果不导出,就无法从X文件中获取变量(因为它们是本地设置的)
您还可以像这样导入上述代码,例如,通过获取所需的值
import {t} from X.js
var local_t = t; // local_t is set to 3
导出默认值意味着,如果您导入文件时没有说明with const或*,您将获得默认的导出值。
例如:
import something from X.js;
var _local = something; //_local equals -1
希望能有所帮助。假设X.js如下所示:
export const t = 0;
export const t2 = 4;
export default w = -1;
var w3 = -9;
当您从X导入*作为Y时
基本上,您可以从该文件获得所有导出,并通过调用X.somevar来获得这些导出。
例如:
var t = X.t; // local t will be equal 0.
如果不导出,就无法从X文件中获取变量(因为它们是本地设置的)
您还可以像这样导入上述代码,例如,通过获取所需的值
import {t} from X.js
var local_t = t; // local_t is set to 3
导出默认值意味着,如果您导入文件时没有说明with const或*,您将获得默认的导出值。
例如:
import something from X.js;
var _local = something; //_local equals -1
希望有帮助。这些都是。它们具有异国情调意味着它们不是完全正常的对象(它们有不同的内部结构)
它们的原型链上也没有对象.prototype
,因此您不能使用hasOwnProperty
,但您应该能够将其与函数.prototype.call一起使用,因为它们有用于
您还可以使用Reflect.has
Reflect.has(values, 'FOO');
另外,由于原型为null
,您也可以在中使用:
'FOO' in values
它们是。它们是奇异的意味着它们不是完全正常的对象(它们有不同的内部结构)
它们的原型链上也没有对象.prototype
,因此您不能使用hasOwnProperty
,但您应该能够将其与函数.prototype.call一起使用,因为它们有用于
您还可以使用Reflect.has
Reflect.has(values, 'FOO');
另外,由于原型为null
,您也可以在中使用:
'FOO' in values
谢谢。我可以列举模块的属性(“导出”)吗?我想使用类似于module.hasOwnProperty('moduleName');
谢谢。我可以列举模块的属性(“导出”)吗?我想使用类似于module.hasOwnProperty('moduleName');