で割り当てられた関数を除いてthis
、コンストラクター内のすべての関数名を取得する必要があります。
var MyObject = function (arg1, arg2) {
this.arg1 = arg1;
this.arg2 = arg2;
// Get all functions, i.e. 'foo', excluding 'arg1' and 'arg2'
};
MyObject.prototype.foo = function() {}
運が悪かったので、Underscore.js を使用しました。実際のパラメーターが両方とも関数であると仮定します。
var MyObject = function (arg1, arg2) {
this.arg1 = arg1;
this.arg2 = arg2;
// Array of object function names, that is 'foo', 'arg1' and 'arg2'
var functions = _.functions(this);
// Loop over function names
_.each(functions, function (name) {}, this) {
// Function arguments contain this.name? Strict check ===
if(_.contains(arguments, this.name) {
functions = _.without(functions, name); // Remove this function
}
}
};
MyObject.prototype.foo = function() {}