タグ

ブックマーク / teramako.hatenadiary.org (2)

  • __proto__の挙動からJavaScriptエンジン判定 - hogehoge @teramako

    function getJSengine() { if (!("__proto__" in Object.prototype)) { if (typeof Object.getPrototypeOf === "undefined") return "JScript(IE8-)"; else return "JScript(IE9+)" } var o = JSON.parse('{"__proto__":null}'); if (!(o instanceof Object)) return "V8(GoogleChrome26-)"; if (Object.getPrototypeOf(o) === null) return "JavaScriptCore(Safari)"; if (Object.prototype.hasOwnProperty("__proto__")) { var d

    __proto__の挙動からJavaScriptエンジン判定 - hogehoge @teramako
  • constructor プロパティについて - hogehoge @teramako

    説明をつけておくと、constructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティで、そのオブジェクトが生成されたときに使われたコンストラクタが参照されています。 ミックスインパターン new this.constructor() の利用 - わからん たまたま見つけたので引用するけど、何処か別のところでも似たような勘違いが書かれていたように思う。もしかすると、このように勘違いしている人は多いのかもしれない。 正しておきたいと思う次第。 間違っているのはconstructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティという部分。 constructor プロパティが生成されるのは、Function オブジェクトが生成されたときです。 以下は、Function オブジェクトが作られる時の処理の流れの一部です。 Let proto be the r

    constructor プロパティについて - hogehoge @teramako
  • 1