素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Classコンストラクタ

function Class()
  function() {
    if (typeof this.initalize != 'function') return this;
    var ret = this.initalize.apply(this, arguments);
    if (ret === null) return { valueOf: function() null };
    switch (typeof ret) {
      case 'number' :
        return new Number(ret);
      case 'string' :
        return new String(ret);
      case 'boolean' :
        return new Boolean(ret);
      case 'undefined' :
        return { valueOf: function() undefined };
      default:
        return ret;
    }
  }
var foo = new Class();
foo.prototype.initalize = function() {}
new foo(); // undefined;

var bar = new Class();
bar.prototype.initalize = function() null;
new bar(); // null

var baz = new Class();
baz.prototype.initalize = function() document.body;
new baz(); // document.body

var fizz = new Class();
fizz.prototype.initalize = function() {x: 4};
new fizz(); // Object x=4

var zoo = new Class();
zoo.prototype.initalize = function() false;
new zoo(); // false