首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要我自己的模块

需要我自己的模块
EN

Stack Overflow用户
提问于 2017-07-31 13:35:20
回答 1查看 88关注 0票数 2

我正在研究分离DOM模式的概念证明,并使用Browserify作为我的资产管道。因此,我“需要”模块,因为我在代码中需要它们。请参阅以下非常简单的代码示例:

代码语言:javascript
复制
var loginForm = require('page-objects/loginForm');

lf = loginForm();

lf.signInButton.on('click', function(event){
    event.preventDefault();
    lf.email.val('TEST')
})

下面是页面对象:

代码语言:javascript
复制
module.exports = LoginForm;

function LoginForm(){
    var $ = require('jQuery'),
    navbarForm = $('form.navbar-form');

    return {
        email: navbarForm.find('input[placeholder="Email"]'),
        password: navbarForm.find('input[placeholder="Password"]'),
        signInButton: navbarForm.find(':button')
    }
}

我不明白,也找不到返回答案的搜索,说明为什么我需要实例化对象来使用它们。我在Browserify GitHub和手册上找到的例子并不表明这是一项要求。但是,如果我没有在我的代码中“新建”这样的对象,那么模块就找不到了……我想知道为什么是这样。我是否可以对我的代码进行更改以避免这样做?

没有对象实例化的代码:

代码语言:javascript
复制
var loginForm = require('page-objects/loginForm');

loginForm.signInButton.on('click', function(event){
    event.preventDefault();
    loginForm .email.val('TEST')
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 14:15:20

此时,导出一个返回对象的函数。要检索对象,必须先执行导出的函数。如果只想要对象而不首先执行函数,只需导出对象而不是函数:

代码语言:javascript
复制
var $ = require('jQuery'),
var navbarForm = $('form.navbar-form');

module.exports = {
    email: navbarForm.find('input[placeholder="Email"]'),
    password: navbarForm.find('input[placeholder="Password"]'),
    signInButton: navbarForm.find(':button')
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45417445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档