Javascript构造函数原型

时间:2012-02-05 04:08:42

标签: javascript mongodb underscore.js

我正在尝试使用下划线和Mongodb在Javascript中构建类似版本的Rails ActiveRecord。对于新创建的对象可以从类的构造函数继承其原型的方式,我无法解决这个问题。也许如果我说明我的观点会更容易:

var root = this;
var Database = root.Database = {};

// Require Underscore, if we're on the server, and it's not already present.
var _ = root._;
if (!_ && (typeof require !== 'undefined')) _ = require('./underscore');

Database.ActiveRecord = function(attributes){
    attributes || (attributes = {});
    this.attributes = {};
};

_.extend(Database.ActiveRecord.prototype, {
    idAttribute: '_id',
    test : 1,
});


var Client = Database.ActiveRecord;
var one = new Client();
console.log(one.prototype);

对象one的原型不继承Database.ActiveRecord.prototype。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

从对象实例中,可以通过constructor.prototype属性访问原型。

所以,one.constructor.prototype === Client.prototype

您似乎只是检查了错误的属性,应该是one.constructor.prototype,而不是one.prototype

另请查看实例对象的__proto__属性。