Tag: 原型

在所有Node应用程序上扩展Object.prototype.myNewMethod

我刚刚开始在NodeJs,所以我不知道这是否是一个很好的做法,对不起 我有我的对象实现添加一个合并方法,我创build的所有对象,所以我可以合并到一个不同的对象。 Object.prototype.merge = function(source){ //…my code here return this; } 所以我想知道如何让我的Node应用程序中的所有模块都可用? 我已经阅读了这本优秀的书 ,我可以为它创build一个模块 ,然后调用utils.merge(obj1, obj2) 。 但即使如此,我宁愿继续使用我的对象的实现,而只是调用obj1.merge(obj2) 有没有办法做到这一点? 提前致谢

Node js中原型的用法是什么?

Im新的节点js语言在大多数节点js示例应用程序都使用原型。然后我来了解使用原型,我们可以将方法和属性添加到一个对象。但我不清楚什么是使用原型任何人都可以解释我。

怎么过程.__ proto__!== process.constructor.prototype?

我打开了node repl并input process.__proto__ === process.constructor.prototype 我很惊讶,答案是 false 这让我很困惑。 那不是o.__proto__被定义为它的构造器原型吗?

Javascriptinheritance使用节点

我想在我的子类中使用父类的方法。 在传统的面向对象中,只需要扩展你的子类就可以利用你父母的function,这是否可以使用原型? 这是我的文件结构: Parent.js var Parent = function(){ this.add = function(num) { return num + 1; }; }; module.exports = Parent; Child.js var Parent = require("./parent.js"), util = require("util"); var Child = function() { this.sum = function(num) { // I want to be able to use Parent.add() without instantiating inside the class // like this: […]

Object.create(BaseObject)和util.inherits(MyObject,BaseObject)有什么区别?

这两个解决scheme设置原型有什么区别? MyObject.prototype = Object.create(EventEmitter.prototype); MyObject.prototype = util.inherits(MyObject, EventEmitter); UPDATE 是啊,我看到它在多个项目中,他们将原型构造函数设置(恢复)到实际的对象构造函数,如下所示: MyObject.prototype = Object.create(EventEmitter.prototype); MyObject.prototype.constructor = MyObject; “恢复”构造函数背后的原因是什么? 我使用引号,因为这个动作看起来更像是一个覆盖,因为MyObject.prototype是EventEmitter那么原型的构造函数应该是EventEmitter的构造EventEmitter 。 恢复原型构造函数的优点是什么? 这真正的生活问题解决了什么? 其次是超级属性中的基础构造函数的优点是什么?

节点原型和asynchronous

当我调用log()时,如何在read()中返回asynchronous函数的值? 我知道代码可能不是100%正确的,但我希望你能明白。 我谷歌search,但仍然有点困惑。 希望有人能帮助我。 function Whatever(directory) { this.source = 'someDir'; } Whatever.prototype.read = function (dir) { dir = dir || this.source; recursive(dir, ['.*'], function (err, files) { if (err) throw err; return files; }); }; Whatever.prototype.log = function() { console.log(this.read()); };

节点模块和原型inheritance

目前我有: index.js(在模块foo中) function Foo(options) { this.memberVar = options.memberVar; } Foo.prototype.bar = function(word) { console.log('word: ', word); } module.exports = Foo; server.js(在单独的模块栏中) var Foo = require('foo'), foo = new Foo(options), greeting = 'Hello World!'; foo.bar(greeting); // prints Hello World! 这很好,除了我觉得如果我不需要使用new关键字来实例化一个新的foo对象来暴露它的成员函数,它可能会更漂亮,更容易理解。 所以这是我想要做的: var greeting = 'Hello World!', foo = require('foo')(options); foo.bar(greeting); // prints Hello World! 如何修改我当前的foo – […]

节点控制台vs Web控制台中的“Object”对象

我对JavaScript比较陌生,仍然试图让我的头在原型inheritance。 而试图了解它,我试着在Web控制台以及在nodejs控制台中使用Object.prototype获取Object对象的原型属性。 在Web控制台中,它显示了Object对象的原型属性有一个成员较less的对象,而在节点中,Object.prototype具有一个空对象。 所以我的问题是“节点(控制台)中的Object对象不同于Web控制台中的对象,因为它们是不同的JavaScript引擎”

如何在mongoose中扩展查询对象

我试图添加一个链式方法到名为“分页”的查询对象。 如果我把它添加到query.js我可以使用它没有任何问题。 但是,修改其中一个核心文件并不是一个好主意。 我使用这个代码,我发现有一些修改,并希望它是查询原型的一部分,但我没有任何成功,使其工作Query.js。 我怎样才能做到这一点? 有没有关于如何通过模块扩展这些核心文件的文档? 我还没有find任何适合我的东西。 mongoose.Query.prototype.paginate = function(page, limit, cb) { var model, query, skipFrom; if (page == null) { page = 1; } if (limit == null) { limit = 10; } query = this; model = this.model; skipFrom = (page * limit) – limit; query = query.skip(skipFrom).limit(limit); if (cb) { return […]

无法看到从子对象添加到原型的属性

我需要一些帮助了解如何JavaScript protoypalinheritance工作…或者说为什么它不做我期待它做的事情。 基本上我试图build立new语句返回的模板对象。 我在utils.js模块中有一个通用的构造函数,它将参数对象中的任何值赋给相应的模板对象,作为调用new的结果,我返回了修改过的模板对象。 module.exports.ctor = ctor; //Mapped object constructor function ctor(template) { return function(args) { var s, t, p; //guard against being used without new //courtesy of John Resig http://ejohn.org/blog/simple-class-instantiation/ if (!(this instanceof arguments.callee)) { throw new Error("Constructor called without 'new'"); } //create a deep copy of `template` to modify t = JSON.parse(JSON.stringify(template)); args […]