var of_interface = {
// valueOf: function (...d) {
// return new this(...d);
// },
// of: function (...d) {
// return this.valueOf(...d);
// },
valueOf: function () {
var that = this;
for (var i = 0; i < arguments.length; i++) {
that = that.bind(this/*not useful*/, arguments[i]);
}
return new that();
},
of: function () {
var that = this;
for (var i = 0; i < arguments.length; i++) {
that = that.bind(this/*not useful*/, arguments[i]);
}
return new that();
},
};
function Clazz(){
}
shallowCopyObj(Clazz, of_interface);
//you can
var obj = Clazz.of();//OK
function A(a,b,c){}
shallowCopyObj(A, of_interface);
//you can
var a = A.of(1,2,3);//OK
不在使用new,直接調用即可,可傳遞任何參數,任意多個參數.