これが本流?
/path/to/models/user.js
module.exports = (function(){
function User(){
this.name = 'youkaiantena';
}
User.prototype.myName = function(){
return this.name;
};
return User;
})();
/path/to/app.js
var myClasses = myClasses || {};
myClasses.User = require('./models/user');
var app = app || {};
app.user = new myClasses.User('youkaiantena');
console.log(app.user.myName());
やってみたけど色々とダメだと思われるやつら
new
したやつ返せば良いんじゃない??
/path/to/models/user.js
var User = (function(){
function User(){
this.name = 'youkaiantena';
}
User.prototype.myName = function(){
return this.name;
};
return User;
})();
module.exports = (function(){
return new User();
})();
/path/to/app.js
var app = app || {};
app.user = require('./models/user')'
console.log(app.user.myName());
出来た!
が、そもそもダメだろこれは。。。
factory
メソッド追加して、それ呼んでみるとか??
/path/to/models/user.js
module.exports = (function(){
function User(name){
this.name = name;
}
User.prototype.myName = function(){
return this.name;
};
User.prototype.factory = function(name){
return new User(message);
}
return User;
})();
/path/to/app.js
var myClasses = myClasses || {};
myClasses.User = require('./models/user');
var app = app || {};
app.user = myClasses.User.factory('youkaiantena');
console.log(app.user.myName());
ダメ。
prototypeに追加したメソッドが存在しない事になってた。
というか、なんでこれ考えたのか謎。。。
factoryクラス作ってそっちでnew
したやつ返すとか?
文字列から動的にオブジェクト作んのどうやるの??、、、evalしかないの??
factoryクラス内でUserをnewしてみたら、そんなやつ知らないって言われた、、、
結論(とりあえず)
本流?と思われる形でやってく事にした。
何か良い方法あったら教えていただけるとありがたいです。