Tag: oop

在NodeJS中创build一个类

我怎样才能创build我的class级数组? 我看到这样的事情: 在main.js中 …. mySuperClass = require('./mySuperClass.js'); objArray = new Object(); … objArray["10"] = new mySuperClass(10); console.log(objArray["10"].getI); objArray["20"] = new mySuperClass(20); console.log(objArray["20"].getI); objArray["30"] = new mySuperClass(30); console.log(objArray["30"].getI); 在mySuperClass.js中 var _i = 0; var mySuperClass = function(ar) { _i = ar; } mySuperClass.prototype.getI = function() { return _i } module.exports.create = function() { return new mySuperClass(); […]

Coffeescript:dynamic创build一个方法被调用的类的实例

我正在使用面向对象的coffeescript构build一个Node.js应用程序。 我有一个super class的静态方法super class : class RedisObject @find: (id, cb) -> client.HGETALL "#{@className()}|#{id}", (err, obj) => unless err cb(new RedisObject(obj, false)) 有一个像这样的子类 class User extends RedisObject 当我在User class上调用find()时,我希望它将User的实例而不是RedisObject传递给callback函数。 我试图通过使用获取调用方法的实际类的类名来实现此目的 @constructor.name 并使用eval()从它生成一个实例 – 但问题是,子类将在超类内未定义。 我怎样才能实现获取不同types的实例返回的行为取决于哪个类被调用,而不必在每个子类中重写?

ES6类中的constr.apply(this,args)

我已经使用下面的函数来创build一些未知类的实例: Kernel.prototype._construct = function (constr, args) { function F() { constr.apply(this, args); // EXCEPTION! } F.prototype = constr.prototype; return new F(); }; 如果我使用原型,一切正常: function Person(name, surname) { this.name = name; this.surname = surname; } var person = Kernel._construct(Person, ["name", "surname"]); // WORKS! 但是,有些人正在使用节点v4 +中使用ES6本机类的库: class Person { constructor(name, surname) { this.name = name; this.surname = […]

node.js – 直接从require创build类的实例

我在一个单独的文件中有一堂课。 我需要在另一个文件中创build它的一个实例。 我试过这个: var connection = new require('./connection.js')("ef66143e996d"); 但是这不是我想要的。 现在我正在使用这个临时解决scheme: var Connection = require('./connection.js'); connection = new Connection("ef66143e996d"); 两个问题; 首先,为什么不这样做。 其次,我怎样才能做到这一点呢?

使用导出对象导出对象

假设我有一个包含JavaScript对象的.js文件。 我想能够从同一个目录中的另一个.js文件访问该对象及其所有function。 我可以简单地导出这个对象与module.exports对象,并require()它在其他.js文件? 如果这是可能的,你能给我一个例子吗? 如果有帮助,我正在开发与节点。

理解javascriptinheritance和node.js utilinheritance函数的例子

我有两个模块: apirequest.js和feed.js。 当我在apirequest中调用feed.start()时, TypeError: Object #<Feed> has no method 'start' 。 为什么是这样? 不是util.inherits(Feed, APIRequest); inheritanceAPIRequest的属性? apirequest.js var EventEmitter = require('events').EventEmitter; var util = require('util'); function APIRequest(endpoint) { } APIRequest.prototype.start = function() { } util.inherits(APIRequest, EventEmitter); module.exports = APIRequest; feed.js var util = require('util'); var APIRequest = require('../lib/api_request'); function Feed(endpoint) { APIRequest.call(this, endpoint); } util.inherits(Feed, APIRequest); […]

正在试图模仿一个接口/抽象类在JavaScript不好的做法

我正在编写Node.js中的一些代码,这些代码跳出我的视线,使用战略模式更好地构build。 来自.Net我会创build其他基于的界面,并从那里移动,在JavaScript中这不是很清楚。 我理解为一个典型的语言JavaScript没有接口inheritance的概念,所以我不知道我做了什么是一种气味,因为我似乎无法find引用,除了一个博客文章,试图推断一个接口通过使用强制inheritance类来实现函数的基本抽象类(当它抛出时)。 我的基类 QueryStrategy = function () { }; QueryStrategy.prototype.create = function(){ throw new Error("Not Implemented"); } module.exports = QueryStrategy; 实施1 var util = require('util'); var QueryStrategy = require('./queryStrategy'); SelectQueryStrategy = function (query) { this.parameters = query.parameters || []; this.entity = query.entity || ''; }; util.inherits(SelectQueryStrategy, QueryStrategy); SelectQueryStrategy.prototype.create = function () { var self […]

使用Node.js在Javascript中进行OOP编程

我实际上在用Javascript做一个小游戏,我想实现我在http://www.crockford.com/javascript/inheritance.html上find的东西,它类似于: ZParenizor.method('toString', function () { if (this.getValue()) { return this.uber('toString'); } return "-0-"; }); 我无法find图书馆用于使这种发展成为可能的任何参考。 有任何想法吗? 否则,我正在寻找一个好的图书馆,这将有助于我的面向对象的开发。 谢谢 编辑: 我正在寻找Node.js的OOP解决scheme/库。 请注意,我是Node.js的新手

es6从同一个类中调用类方法

我想在我的类中调用一个类方法,如下面的例子所示。 import blah from './blaha'; export default class myclass{ constructor(con) { this.config = con; } async meth1(paramA) { //do_stuff… } meth2(paramB) { //attempt to call meth1() } } 我想从使用es6类样式的不同方法中调用一个方法。

在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?

通过每个中间件,Express传递一个res和一个req对象。 这些对象分别扩展来自http.ServerResponse和http.ClientRequest的本地对象。 我想知道是否有可能重写或扩展响应对象的方法。 例如,而不是res.render('home', jsonData); ,我想用一个名为customRender的自定义方法来扩展res ,并像这样使用它: res.customRender() 。 我没有被困在一个特定的问题或任何东西。 我只想学习如何扩展本地对象,或者像本例一样,来自Node.js中第三方模块的对象