タグ

2010年6月16日のブックマーク (2件)

  • JavaScript の new 演算子の意味: Days on the Moon

    JavaScript における new 演算子の動作は大まかにいって以下のとおりである。(new F() とした場合。) 新しいオブジェクトを作る。 1 で作ったオブジェクトの [[Prototype]] 内部プロパティ (__proto__ プロパティ) に F.prototype の値を設定する。 F.prototype の値がオブジェクトでないのなら代わりに Object.prototype の値を設定する。 F を呼び出す。このとき this の値は 1 で作ったオブジェクトとし、引数には new 演算子とともに使われた引数をそのまま用いる。 3 の返り値がオブジェクトならそれを返す。そうでなければ 1 で作ったオブジェクトを返す。 ここで「オブジェクトである」というのはプリミティブ値 (文字列、数値、真偽値、undefined 、null) ではないということだ。new Stri

    HHR
    HHR 2010/06/16
  • javascript - uneval() for the rest of us! : 404 Blog Not Found

    2009年02月26日11:30 カテゴリLightweight Languages javascript - uneval() for the rest of us! うーん、それもそうなんだけど.... 最速インターフェース研究会 :: JavaScriptにおけるdeep clone まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 そのuneval()が他にないので、作ってみた。 初出2007.11.27; 追記2008.06.14, 2009.02.26 文字列のEscapeをFirefox互換に。あと、 /la

    javascript - uneval() for the rest of us! : 404 Blog Not Found
    HHR
    HHR 2010/06/16
    clone pdo