Tag: 原型

使用node.js在其他文件中使用原型

我目前正在学习如何使用node.js(和原型的OOP JavaScript),但我有一个小问题。 我会给你的代码: foo.js: var foo = function(){}; foo.prototype.a = function(){ return 'foo'; }; bar.js: var bar = new Foo(); console.log(bar.a); app.js require('./foo.js'); require('./bar.js'); 而不是工作,我得到一个ReferenceError告诉我,foo没有定义。 有人可以告诉我该怎么做?

JavaScript中的JavaScript原型对象效率

我想知道以下哪一个在Node API更有效率? function LoginController() { this.model= new Model(); }; LoginController.prototype.doSomething = function() { this.model.doSomethingToo(); } 与此相比: function LoginController() { }; LoginController.prototype.doSomething = function() { new Model().doSomethingToo(); } 据我所知,在场景#1中的原型对象,我会创build一个新的模型,每次我调用new LoginController() 。 在场景#2中,我只会在创build第一个new LoginController()时创build一个新的模型 。 所有接下来的新实例都不会创build其他模型 ,因为它已经在原型函数中创build。 那是对的吗?

Javascript原型方法和未使用的variables

我目前通过原型方法构build对象。 这个对象不需要用户build立的方法,虽然工厂的方法可能会更好,但我对原型更加适应。 我想知道关于var buf = data._raw; 。 一旦对象被返回, buf会发生什么情况?它是否会创build内存泄漏,或者是垃圾回收还是发生其他事情? var Identification = function(data){ var buf = data._raw; this.def = data.def; this.master = buf.readUInt8(9); this.version = buf.readUInt8(10); //more reading from a buffer… } module.exports = Identification; 我通过传入由3个属性组成的data在另一个模块中调用这个函数。 def , _raw , length其中def是对象types的int表示, _raw是缓冲区, length是缓冲区长度。 var Identification = require('./Identification'); function main(){ var identification = new Identification(data); } […]

模块化模式vs原型 – Nodejs?

我在Nodejs工作。 我曾经在modular pattern 。 编码简单易行。 注意 我的同事告诉Prototype模式是Nodejs和Modular模式最好的方法。 我的代码示例 module.exports = { get : funcntion(){ //stuff }, set : function(){ //stuff } } 题 什么样的模式对于实时Web应用程序来说是最好的,或者一般情况下是使用Nodejs的应用程序上下

JS。 属性原型奇怪的行为

我试图了解如何使一个nodejs支持的webgame中的原型的属性工作。 推理:而不是像这样做: Player.attributes.pow.value它会更容易阅读时,它是: Player.pow注意:我不想使用一个函数,因为Player.pow()让你感觉像是不仅仅是返回一个值。 所以要testing它是如何工作的,我做了一个快速的模型,并注意到一个奇怪的行为,虽然它不知道我是否应该这样做: function Player() { this.attributes = { pow: { base: 3, value: 3, attChanges: [], multiplier: 0, calculateValue: function() { var multiplier = this.multiplier; var value = 0; this.attChanges.forEach( function(att) { value += att.value; // For some reason this.value returns NaN in the forEach, this is a way around that… multiplier […]

nodejs不能识别对象的function

我在node.js中构build了一个reddit API封装,以便更加熟悉js和node。 这是我的代码到目前为止: ./lib/reddit.js: var request = require("request"); var reddit = function () { var self = this, userAgent = "node.js api wrapper", debug = false, uh = "", cookie = ""; self.getJSON = function (url, callback) { request(url, function (error, response, body) { if (!error && response.statusCode == 200) { callback(body); } }); }; […]

对象的属性不是一个函数

为什么我得到这个错误信息Property 'shortDescr' of object #<Article> is not a function function Article() { this.id = null; this.title = null; this.url = null; this.descr = null; this.media = null; }; Article.prototype.shortDescr = function () { if ( this.descr.length > 100) { return this.descr.substring(0,80) + ".."; } else { return this.descr; } }; var ArticleFactory = { numOfArgs […]

JavaScript:为什么getOwnPropertyDescriptor()包含自定义的inheritance属性?

我正在学习JavaScript和Node.js,并且有一个关于Object.getOwnPropertyDescriptor()函数的问题。 考虑以下顶级代码: var rectangle = { width: 10, height: 5, get area() { return this.width * this.height; } }; Object.prototype.x = 5; var areaPropDesc = Object.getOwnPropertyDescriptor(rectangle, "area"); for (var attr in areaPropDesc) { console.log("areaPropDesc["+attr+"] is: "+areaPropDesc[attr]); } 当我执行上面的代码,这是输出: areaPropDesc[get] is: function area() { return this.width * this.height; } areaPropDesc[set] is: undefined areaPropDesc[enumerable] is: true areaPropDesc[configurable] […]

需要原型内部还是外部的函数?

我经常使用这样的原型: 在不同的文件中要求相同或相似的function。 要求Element在范围内还是在范围之外,这样做会更好吗? 我想这应该是在外面,否则我会在我的代码中创build大量元素的副本, 不是吗? var Element = require("./Element.js") var _ = function(){ this.element = new Element(); this.stuff; } _.prototype.setStuff = function(stuff){ this.stuff = stuff } _.prototype.doStuff = function(){ this.stuff(); } module.exports = _; 谢谢。

为什么Chrome会将引用types为Date的对象的原型视为“Object {}”,而不是“Date {}”?

代码很简单。 var now = new Date(); console.log(now.__proto__); console.log(now.__proto__.__proto__); console.log(now.__proto__.__proto__.__proto__); 在Chrome的控制台中,结果显示为屏幕截图。 结果在Node.js的控制台中似乎是正确的。 为什么不now.\__proto\__在Chrome的控制台中返回Date {} ?