如何在一个javascript文件中访问/获取变量到另一个javascript文件

时间:2015-08-26 06:03:36

标签: javascript protractor pageobjects e2e-testing

如何从一个javascript文件访问/获取变量到另一个javascript文件。 像first.js包含一个函数first.js,如下所示。

this.first = function(){
    var x = ['new','old'] 
}

现在,我想访问另一个文件中的'x',说second.js 我试过了

var first = require('../first.js');  //path to the first.js file
console.log(first.x)

但获得未定义的值。 我想从first.js获取/访问'x' 我正在使用它来进行使用页面对象的量角器E2E测试。

2 个答案:

答案 0 :(得分:2)

函数/变量的js文件无关紧要。解析后,它们都属于同一个window

访问undefined属性时,您获得x,因为它是私有的。 x仅存在于first函数的本地范围内。

以下是如何访问x的示例。

var first = (function () {
    // private variables / functions
    var x = ['new', 'old'];

    // public properties (properties of "first")
    return {
        getX: function () {
            return x; // x.slice(0); if you want to send a copy of the array
        }
    }
}());

答案 1 :(得分:1)

node.js中的模块加载系统要求您使用module.exports公开您要共享的数据类型:

您的示例将重写如下:

// first.js

module.exports = {
   x : 'Something here',
   y : 'another item'
};

然后在另一个文件

var first = require('../first.js');  //path to the first.js file
console.log(first.x)

查看有关Node.js module loading system

的更多详情