Tag: getter setter

如何将Getter / Setter应用到对象

在定义它的时候,如何将一个getter / setter应用到一个对象本身? 例如,我想做 myobj = 123运行console.log(123) 我知道这是可能的,通过使用class extends ,但我想find一个更简单的方式, 可能在构造函数中定义getter / setter。 有谁知道如何? 这甚至有可能吗? 如果您需要更多信息,或者我不够清楚,请告诉我。 – JacobTDC

JavaScriptvariables范围/提升问题

我有一些非常混淆的问题,从原始文件中设置本地后,从另一个文件中获取variables。 我知道这与吊装有关,但经过一段时间的研究,没有运气,我认为这是值得在这里问。 我试图从我的文件sequencer.js像这样获取设置element : var nxloader = require('../../helpers/nxloader'); // Load matrix var matrix = nxloader.load('matrix').getElement(); console.log(matrix); 从设置variables的文件nxloader.js如下所示: var $ = require('jquery'); /** * Variable to hold the element that is loaded. */ var element = 'test'; /** * Constructor * * @returns {nxloader} instance of itself */ var nxloader = function () { return this; […]

在JavaScript中,特别是NodeJS上的ES6,我可以直接在运行时操作类的getter和setter函数吗?

可以说我有一个类定义如下: class MyClass { constructor(a, b) { this._a = a; this._b = b; } get a() { return this._a; } set a(val) { this._a = val; } add() { return this._a + this._b; } } 我希望能够直接在运行时访问和操作getter和setter函数,以便将它们包含在其他debugging代码中。 使用“添加”function,我可以这样做: let oldAdd = MyClass.prototype.add; MyClass.prototype.add = function() { console.log('add called!'); let result = oldAdd.call(this); console.log('add result: ' + […]

Mongoose.js getter充气在Find()上的子文档?

是否有一个Mongoose.jsvalidation的反例,可以膨胀的子文档,当父母被检索? 我可能一直在看这个文档,但是我没有意识到它是一个现有的function。 MongoDB的一个优点是查询规范(例如{likes: {$gt: 10, $le: 14}}本身就是Javascript对象,并且直到最近才将它们作为子文档存储在MongoDB实例中。 然而,从MongoDB 2.4升级到2.6,这些不再是有效的存储,现在得到的错误: The dollar ($) prefixed field '$or' … is not valid for storage 因此,在这个谷歌组讨论的情况 。 那里的作者build议把这个文档变成一个String。 如果子文档具有embedded点的合法Javascript属性(例如{"802.11g": …} ),则也会出现这种情况{"802.11g": …} 这很容易,通过指定JSON.parse和JSON.stringify作为Mongoose.js中的getter / setter: var ProjectSchema = new Schema({ name: { type: String, required: false, default: "New project" }, spec: {type: mongoose.Schema.Types.Mixed, set: JSON.stringify, get: JSON.parse}, }); 但是,如果我明确地要求属性值,getter才会被调用。 […]

我怎样才能得到console.log输出的getter结果,而不是string“”?

在这个代码中: function Cls() { this._id = 0; Object.defineProperty(this, 'id', { get: function() { return this._id; }, set: function(id) { this._id = id; }, enumerable: true }); }; var obj = new Cls(); obj.id = 123; console.log(obj); console.log(obj.id); 我想得到{_id:123,id:123},但是我得到{_id:123,id:[Getter / Setter]} 有没有办法让getter的值被console.log函数使用?