Tag: 原型inheritance

如何在Node.js的模块中使用Object.create进行inheritance

我有一个包含一般车辆信息的模块车辆。 我有另外一个模块Car,它为Vehicle对象增加了更多的function。 // Pseudo code only. The final functions do not have to resemble this var vehicle = require('vehicle') vehicle.terrain = 'Land' var car = vehicle.createCar() // car and anotherCar will have unique Car-related values, // but will use the same Vehicle info var anotherCar = vehicle.createCar() 我正在寻找使用Object.create Car模块,但不知道Object.create调用应该去的地方。 我应该在Car模块中有一个构造函数,它需要一个Vehicle对象的实例,并以Vehicle实例为原型执行Object.create? 或者,Object.create是否应该在Vehicle对象的函数中发生,比如createCar? 我的问题是,汽车应该关心它是从车辆派生出来的,汽车不应该知道汽车需要的。 或者即使Object.create是正确的方法。 请,任何示例和最佳做法将不胜感激。 更新: […]

如何在node.js中实现jade模板的inheritance

我在同一个文件夹中有两个玉模板,就像: |__layout.jade |__content.jade 而layout.jade是父模板,content.jade将inheritance它:所以在layout.jade : doctype 5 html(lang="en") head title= title body block content 在content.jade extends layout block content h1 this is frome nested template 但是,当我运行它时,inheritance不起作用,它只显示父模板的内容 所以我的代码有什么问题?

创build单节点模块以访问在coffeescript中创build的单独文件中的多个扩展类

我想创build一个包含多个类的单个节点库,每个类都使用另一个文件中的coffee-script创build并相互扩展。 例如,说我在node_modules / mymodule / src中有以下文件: 文件1: class Base constructor: (@foo) -> module.exports = Base 文件2: Base = require './Base.coffee' class Derived extends Base constructor: (@bar) -> super module.exports = Derived 文件3: Base = require './Base.coffee' class Derived2 extends Base constructor: (@baz) -> super module.exports = Derived2 有没有办法以这种方式绑定这三个类,以便我可以在package.json文件中定义“mymodule”,然后像这样访问模块及其类? 使用mymodule的文件: my module = require 'mymodule' Base […]

在这种情况下实现JavaScript的inheritance

我明白这是低调发布有关编程语言的问题,但我真的不能把我的头围绕在这一个,这是真正的士气低落。 我在节点js写一个游戏,我想从这个类inheritance…我不知道如何,语法抛出我和这个东西的教程似乎做了千千万万的方法与我的方法不同,与一个构造函数和所有。 基本上我的问题是如何inheritance下面的代码。 /* Character class*/ var character = function(startX) { var x = startX, swipe = 0; var getX = function() { return x; }; var getSwipe = function(){ return swipe; }; var setX = function(newX) { x = newX; }; var setSwipe = function(newSwipe){ swipe = newSwipe; }; return { getX: getX, getSwipe: […]

节点js原型对象'self'var不存储正确的callback上下文

我是经验丰富的开发人员,但新的Java脚本和nodejs,我很抱歉,如果这个问题已被回答“原样”,但即使我已经去了多个例子和stackoverflow的答案,我没有find一个简单的完整例子的原型类用正确的“自我”var范围和绑定(这)。 我试了两个,都出错了,我会感谢您的帮助。 我尝试把var self = this; 在我的函数声明的开始,但是运行时,它实际上并没有通过函数代码,当它被设置为原型,所以,'这'设置不正确。 /** * Module Dependencies */ var cheerio = require('cheerio'); var http = require('http'); /** * Export */ module.exports = SimplePageGetter; function SimplePageGetter(pageLink) { this._pageLink = pageLink; } SimplePageGetter.prototype.getPage = function () { var self = this; http.request(self._pageLink, self._resultsPageHttpGetCallback).end(); }; SimplePageGetter.prototype._resultsPageHttpGetCallback = function (response) { var pageBody = ''; […]

如何扩展更多的“期望”functionfrisby.js?

有没有办法用自定义expect方法来扩展Frisby.js模块? 我不想修改源代码,这些扩展特定于我的REST API。 我的目标是通过将它们组合成一种方法来避免重复常见的testing。 问题是Frisby.js模块用这个代码导出它的方法: exports.create = function(msg) { return new Frisby(msg); }; 我如何将新方法添加到Frisby? 这更像是一个Javascriptinheritance问题,因为它适用于Node.js模块。 例如,testing.expect API的脚本会有很多重复的.expect子句,如.expectHeader()和.expectJSONTypes() 。 我想将这些结合到一个.expectSEwrapper()方法中。 此方法对于StackExchange API是唯一的,因此它不属于Frisby.js。 该脚本将如下所示: var frisby = require('frisby'); frisby.create('StackOverflow Info') .get('https://api.stackexchange.com/2.2/info?site=stackoverflow', {gzip: true}) .expectStatus(200) .expectHeader('content-type', 'application/json; charset=utf-8') .expectHeader('content-encoding', 'gzip') .expectJSONTypes('', { items: Array, has_more: Boolean, quota_max: Number, quota_remaining: Number }) .toss(); frisby.create('StackOverflow Badges') .get('https://api.stackexchange.com/2.2/badges?order=desc&sort=rank&site=stackoverflow', {gzip: true}) .expectStatus(200) […]

ES6 JS类中的属性inheritance

/A.js有以下代码; class A { constructor(token) { this.token = token; } lok() { return 'hello'; } } module.exports = A /dir1/dir2/B.js有以下代码; let A = require(__dirname + '/../../A.js') class B extends A { constructor(token) { super(token) } tok() { return this.token; } } module.exports = B 问题是,我如何从类Ainheritance令牌属性, let init = new A('123') init.tok() //will return token 相反,我的问题是,如何从基类(A)inheritance在构造函数中声明的属性,以便我可以在子类(B)中使用它们。

Object.create和inheritance

以下示例中的结果对象之间有什么区别: var EventEmitter = require('events').EventEmitter; var oProto = Object.create(EventEmitter.prototype); var oProto2 = Object.create(oProto); var oConstr = Object.create(new EventEmitter); var oConstr2 = Object.create(oConstr); 我想oConstr和oConstr2会在EventEmitter构造函数中设置任何属性,但是还有其他有意义的区别吗?

如何在Node.JS中实现inheritance

我们如何在Node.JS中使用“inheritance”? 我听说原型和java中的接口类似。 但我不知道如何使用它!

Node.js,embedded式对象的Mongoose策略模式(inheritance,鉴别器)

有人可以帮我吗? 我想用mongoose及其embedded的对象来使用策略模式或inheritance/鉴别器。 我知道mongoose支持inheritance/鉴别器的收集,但没有find任何解决scheme的embedded式对象。 不知道如何定义schema / s,或者即使没有真正的重编码也是可能的。 这是我的代码。 来源集合,每个来源可以有一个不同types的运输。 如果Source.getTransport()的调用返回HttpTransport或FileTransport的实例,理想情况是。 [{ _id: "1……", name: 'Source 1', enabled: true, transport: { type: 'Http', url: 'http://some.url' } },{ _id: "2……", name: 'Source 2', enabled: true, transport: { type: 'File', path: '/some/path/here' } }] 我甚至不确定mongoose文档(如HttpTransport / FileTransport)是否应该包含方法read(),并执行所有繁重的工作,或者只是将其保留为configuration对象,并使用外部工厂创build传输实例传递此configuration对象。 var transport = TransportFactory.create(source.getTransport()); 或者我完全错了,还有其他的模式可以使用? 感谢您的任何帮助。