
先定义一个“类”:
function User(obj) { for (var key in obj) { this[key] = ojb[key]; } } 再在原型上定义一个方法,该方法会将实例自身保存到 redis 里:
User.prototype.save = function(){ redis_client.hmset('user111', this); }; 测试:
var tobi = new User({ name: 'Tobi', pass: 'secret-passwd', age: '2' }); tobi.save(); 然后去到 redis-cli 里输出该对象,会发现连同原型上的 save 函数也保存了:
$ redis-cli redis> hgetall user111 ... 5) "pass" 6) "secret-passwd" 7) "age" 8) "2" ... 13) "save" 14) "function (){\r\n ... 请注意上面输出的 13), 14) 部分,正是在原型上定义的方法。
这其实是《 Nodejs 实战》书里的一个例子,书里的输出是没有原型上的方法的,只保存了实例属性。我这里的输出为什么有原型方法呢?
1 fds 2016-11-10 11:22:58 +08:00 可能是你用的 redis 库有更新。不过 redis 里存的都是字符串,所以一般也没人这么用。 |
2 D3EP 2016-11-10 11:24:54 +08:00 via Android 关键看这个库的序列化方法吧,和 redis 没关系。 |