当前位置: 首页 > 面试题库 >

具有require的Node.js ES6类

谢铭
2023-03-14
问题内容

到目前为止,我已经node.js通过以下方式创建了类和模块:

    var fs = require('fs');

var animalModule = (function () {
    /**
     * Constructor initialize object
     * @constructor
     */
    var Animal = function (name) {
        this.name = name;
    };

    Animal.prototype.print = function () {
        console.log('Name is :'+ this.name);
    };

    return {
        Animal: Animal
    }
}());

module.exports = animalModule;

现在使用ES6,您可以像下面这样创建“实际”类:

class Animal{

 constructor(name){
    this.name = name ;
 }

 print(){
    console.log('Name is :'+ this.name);
 }
}

现在,首先,我喜欢这个:),但这引起了一个问题。如何将其与node.js的模块结构结合使用?

假设您有一个班级,为了演示而希望使用一个模块,说您想使用 fs

所以您创建文件

Animal.js

var fs = require('fs');
class Animal{

 constructor(name){
    this.name = name ;
 }

 print(){
    console.log('Name is :'+ this.name);
 }
}

这是正确的方法吗?

另外,如何将此类公开给节点项目中的其他文件?如果在单独的文件中使用它,您仍然可以扩展该类吗?

我希望你们中的一些人能够回答这些问题:)


问题答案:

是的,您的示例可以正常工作。

至于公开您的课程,您可以export像其他任何课程一样进行:

class Animal {...}
module.exports = Animal;

或更短一点:

module.exports = class Animal {

};

一旦导入到另一个模块中,您就可以将其视为在该文件中定义了:

var Animal = require('./Animal');

class Cat extends Animal {
    ...
}


 类似资料:
  • 问题内容: 这两个语句似乎以相同的方式工作: 它们之间有区别吗? 问题答案: 答案是: Node.JS会查看给定的模块是否为核心模块。(例如,等),始终在加载模块中优先。 如果给定的模块不是核心模块(例如,等),则Node.js将开始搜索名为的目录 。 它将从当前目录(相对于Node.JS中当前执行的文件)开始,然后沿文件夹层次结构向上移动,并检查node_modules文件夹的每个级别。一旦No

  • 问题内容: 正在做类似的事情 认为应该避免的不良做法? 我个人认为的执行(或或者,这不是点)调用应该只添加一个“链接”到其他功能/对象,并不会执行自身的东西。换句话说,我认为需求的行为与其他oo语言的导入/使用非常相似。 我上面编写的示例相当简单,但显然我也在针对各种“副作用”进行编写。我经常在某些包含的文件中发现定义函数或会话技巧,这是我经常发现的其他弊端。 问题答案: 是的,恕我直言, 除非有

  • 问题内容: 模块声明中的 require 和 require静态 模块语句之间有什么区别? 例如: 问题答案: 一条子句表示在编译和运行时需要所需的模块。因此,当模块系统在模块解析(处理模块描述符和解决依赖关系的阶段)期间遇到此类子句时,它将搜索可观察模块(JDK和模块路径中的模块)的范围,并引发错误如果找不到模块。 一个从句表示的依赖是在运行时可选。这意味着在编译时,模块系统的行为完全如上所述。

  • 描述 (Description) 此函数然后它要求脚本需要指定版本的Perl才能在EXPR为数字时继续。 如果EXPR或$ _不是数字,则假定该名称是要包含的库文件的名称。 您不能将此功能包括在同一文件中两次。 包含的文件必须返回一个真值作为最后一个语句。 这与使用的不同之处在于,包含的文件实际上成为当前脚本的附加文本。 函数,变量和其他对象不会导入当前名称空间,因此如果指定的文件包含包定义,则对

  • JavaScript 加载执行器,可用于同步或异步加载执行任何js文件。 实例: 1、引入js文件 2、配置require-config.js require.config({baseUrl : '.',//可写实际url(http://xxx.com),也可不写group : {//定义控件组'Base' : [ 'Constant', 'DateUtil', 'ValidUtil', 'Bas

  • require 用来加载一个文件的代码,关于 require 的机制这里不展开讲解,请仔细阅读 官方文档。 简单概括以下几点: require 可加载 .js、.json 和 .node 后缀的文件 require 的过程是同步的,所以这样是错误的: setTimeout(() => { module.exports = { a: 'hello' } }, 0) require 这个文件得到的是空