Tag: 原型inheritance

Node.JS中的inheritance

我正在使用node.js和基于express.js的编程。 我试图使用util.inherits在JavaScript中实现inheritance。 我试过的是如下: //request.js function Request() { this.target = 'old'; console.log('Request Target: ' + this.target); } Request.prototype.target = undefined; Request.prototype.process = function(callback) { if (this.target === 'new') return true; return false; } module.exports = Request; //create.js function Create() { Create.super_.call(this); this.target = 'new'; } util.inherits(Create, Request); Create.prototype.process = function(callback) { if (Create.super_.prototype.process.call(this, callback)) { return […]

如何从基于对象的语言转移到服务器端Node.js JavaScript的大项目?

我决定习惯于使用Javascript作为我的服务器端(我使用Node.js)语言来设置一个networking服务器,创build服务器deamons和更多。 这是一个相当大的项目,这意味着我必须习惯于语言,并在实际开始避免开销和不必要的麻烦之前让自己达到最佳的设置。 我一直在寻找能够解释大型项目中函数式编程基础知识的源代码。 不幸的是,大多数消息来源只谈到在浏览器中用于简单技巧的基本Javascript。 两个有用的链接,解释了如何在Javascript中创build对象: http://howtonode.org/object-graphs和http://howtonode.org/object-graphs-2 。 最后,创build一个对象似乎是最明智的: function MyObject(constructorMemberOne, constructorMemberTwo) { this.constructorMemberOne = constructorMemberOne; this.constructorMemberTwo = constructorMembertwo; this.doSomething = function doSomething() { // } } 现在,我正在寻找一个完整的Javascript语言参考。 到目前为止, https://developer.mozilla.org/en/JavaScript/Reference似乎是最完整的。 Q1:这是推荐的ECMAScript语言参考? 我问的主要是因为它是由一个主要在浏览器行业工作的公司提供的,但是Javascript并不仅仅是浏览器 – 也许有一些我不知道的来源。 其次,我习惯于为每个创build的文件名称代表类的名称创build一个新的文件。 问题2:在JavaScript(V8,Node.js)中这个build议的做法是否也是这样? 如何“导入”这个类? 这个“导入”使我对Node.js的“require”感到困惑。 我知道这是不一样的。 需要基本上加载另一个文件,然后有它自己的命名空间,这意味着它的variables超出了需要这个文件的文件的范围。 然而,对于我的类,我希望有一个方法可用于“导入”类(引号,因为我不确定这是否可能)。 例如。: var utils = require("utils/MainUtils.js"); utils.doSomething(); 据我所知,这个doSomething()方法只有在像下面这样设置时才可用: function MainUtils() { exports.doSomething = function doSomething() { […]

环回 – 扩展内置模型的最简单方法

我一直在使用Loopback创build一个API。 该文档通常是非常好的,但并没有真正回答我关于以下问题:如何扩展 (而不是取代)内置模型? 最有希望的一条信息来自这个页面 – 它指定了通过inheritance来从另一个类build立一个类的方法。 这是有用的,但不是理想的 – 我想创build与股票模型的定制模型的关系,例如 – “angular色”应该有许多“权限”。 我提到的页面还显示了一个Javascript文件,位于common/models/<modelName>.js ,它声明可以根据您给它的属性和选项“扩展”模型。 服务器似乎没有击中文件…例如 – 我把文件放在common/models/role.js文件中,内容如下: var properties = { exampleProperty: {type: String, required: true} }; var user = loopback.Model.extend('Role', properties); console.log('test'); 首先,它似乎没有打到文件(没有给出console.log输出)。 其次,显然是因为第一点,它没有扩展与我创build的属性的模型。 我是否错过了一些显而易见的东西,或者是文档错误?

检查nodejs中的inheritance

在nodejs中检查inheritance的最好方法是什么? 我想在一个inheritance这个模块的类的另一个模块的类的instanceof中使用instanceof 。 文件a.js class A{ } class B extends A{ } var b = new B(); b instanceof A ///this work global.c instanceof A //this doesn't work module.exports = A; 文件c.js var A = require("./a"); class C extends A{ } global.c = new C();

在ES6中导入和扩展一个类的最好方法

我想在一个文件中创build一个类,在另一个文件中导入和扩展它。 就像是: /* someclass.js */ export class SomeClass {} /* somesubclass.js */ import SomeClass from './someclass' class SomeSubClass extends SomeClass {} 是否有可能或有没有更好的方式来做到这一点(例如使用node.js module.exports )?

带有Node.js的数据库inheritance模型

使用Node.js和一个类似于SQL的数据库,在实现数据库inheritance模型时,我有什么select? 我环顾四周,似乎由于Node.js中noSQL数据库的stream行,数据库inheritance被忽略了。 我试图完成一个非常简单的事情:基于一些业务规则扩展一个用户表。 为了简单起见,我想要添加读者和主持人的表和类的属性会有所不同。 这是在使用NHibernate的.NET中相对容易完成的事情。 我可以达到相同的结果,而不用粘在同一张表的所有内容? 如果不是,最好的select是什么? 顺便说一句,我通过Sequelize与PostreSQL使用Node.js。

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的实例返回的行为取决于哪个类被调用,而不必在每个子类中重写?

Mongoose模式inheritance和模型填充

我一直试图用内置的mongoose(而不是扩展插件)的inheritancefunction,但迄今没有多less运气。 这是我试图使用的代码的一个简化的例子,展示了同样的问题。 这是基于使用鉴别器的模式inheritance的mongoose文档的扩展版本 – http://mongoosejs.com/docs/api.html#model_Model.discriminator var util = require('util'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/problem'); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; function BaseSchema() { Schema.apply(this, arguments); this.add({ name: String, createdAt: Date }); } util.inherits(BaseSchema, Schema); var BossStatusSchema = new Schema({ status: String }); var BossStatus = mongoose.model('BossStatus', BossStatusSchema); var PersonSchema = new BaseSchema(); var […]

为什么console.log()不显示Object.create的inheritance属性?

我在尝试利用基础对象上的Object.defineProperty()时遇到了挂断问题。 我想使用Object.create()从该对象inheritance属性,然后在派生对象中定义更多的属性(可以从中inheritance)。 我应该注意到,我正在node.js这个目标。 这是一个例子: var Base = {}; Object.defineProperty(Base, 'prop1', { enumerable:true, get:function(){ return 'prop1 value';} }); Object.defineProperty(Base, 'prop2', { enumerable:true, value : 'prop 2 value' }); Object.defineProperty(Base, 'create', { value:function(){ return Object.create(Base); } }); console.log(Base); var derived = Base.create(); Object.defineProperty(derived, 'prop3', { enumerable:true, value:'prop 3 value' }); console.log(derived); 其中输出以下内容: { prop1: [Getter], prop2: 'prop […]

JavaScriptinheritance框架

是否有一个小的,轻量级的JavaScript类inheritance的解决scheme,可以在客户端和服务器端(node.js)很好地工作? 我不想要一个大型的图书馆,只是让我声明一个构造函数和一些方法,然后有一个类inheritance的能力。