Tag: getter

在javascript中获取调用getter的参数

给定一个这样的JavaScript对象: var myThing = {}; Object.defineProperty(myThing, 'gen', { 'get' : function() { // access caller name here, so I can return cool/neat stuff } }); 我希望能够得到myThing.gen的孩子,但是知道在getter中要求什么。 例如: var coolThing = myThing.gen.oh.cool; var neatThing = myThing.gen.oh.neat; 我想要getter中的“oh.cool”或者“oh.neat”部分,所以我可以根据这个做出决定,并且返回一些特定的东西。 我可以解决scheme不工作在IE,或旧的浏览器,因为它主要是节点。 这样做的实际目的是,我可以请求myThing.gen.oh.neat并让myThing.gen getterparsing为require('./oh/neat.js')并返回它。 由于需要caching,所以这是dynamic加载模块化function的有效方式,并且具有整洁的接口(而不是仅仅在需要的地方dynamic构build需求),而无需提前知道结构。 如果没有反省名称的function可以为我所用,我可以做一些不那么优雅的事情,比如: myThing.gen = function(name){ return require('./' + name.replace('.', '/') + '.js'); } 并做到这一点: neatThing = […]

Javascript getter和setter的傻瓜?

我一直试图让我的头在getter和setter,而不是陷入。我已经读了JavaScript Getters和Setters和定义Getters和Setters ,只是没有得到它。 有人可以明确指出: 什么是吸气和二手的意图去做,和 给一些非常简单的例子?

在sequelize getter方法中的asynchronous表查询

我有一个执行数据库查询的sequelize实例方法: getPropertyDays() { const queryString = ` SELECT state FROM property_days WHERE DATE(day) = CURDATE() AND property_id = :propertyId;`; const replacements = {propertyId: this.id}; return this.sequelize.query(queryString, {replacements: replacements, type: sequelize.QueryTypes.SELECT}); }, 被getter调用: getterMethods: { propertyState() { var self = this; const blockedDay = 'x'; const unavailableDay = 'u'; this.getPropertyDays().then(function(result) { var state = result[0]['state']; if […]

获得一个类中的所有静态获得者

比方说,我有这个类(我使用像一个枚举): class Color { static get Red() { return 0; } static get Black() { return 1; } } 有没有类似于Object.keys来获得['Red', 'Black'] ? 我正在使用Node.js v6.5.0,这意味着一些function可能会丢失。

为什么我的Mongoose 3.8.7模式获取器和设置器被忽略?

在使用Node.js,Mongoose和MongoDB时,我发现当执行findOne查询时,我的Mongoose模式获取器和设置器不会触发。 我发现了一个旧的线程,表明在版本2.x中有一个getter和setter的问题,但是它表明它已经被解决了,而且我正在使用最新版本的Mongoose(3.8.7)。 这是我的模式的一部分 function testGetter(value) { return value + " test"; } /** * Schema */ var schema = new Schema({ username: { type: String, required: true, unique: true, get: testGetter } }); // I have also tried this. schema.path('username').get(function (value, schemaType) { return value + " test"; }); 以下是我如何执行查询 Model .findOne(conditions, fields, options) .populate(population) […]

监控所有的JavaScript对象属性(魔术获得者和设置者)

我如何在JavaScript中模拟PHP风格的__get()和__set()魔术getter / setters? 很多人说这是不可能的。 我几乎可以肯定,这是可能的,因为像nowjs( http://nowjs.com )这样的项目做这样的事情。 我知道你可以利用get和set ,但是当你不确定属性的名字是什么时,这些不起作用。 例如, 如果您想要在创build新属性时执行事件处理程序,该怎么办? 我想要做的例子: var obj = {}; notify(obj, function(key, value) { //key is now the name of the property being set. //value is the value of the property about to be set console.log("setting " + key + " to " + value); }); obj.foo = 2; […]