タグ

ブックマーク / vividcode.hatenadiary.org (5)

  • 誤り : JavaScript のオブジェクト型は参照型ではないというお話 - vivid memo

    コンピュータ科学の分野における 「参照型」 (reference type) というのは、「何らかの値を参照するデータ型」 のことだと思っていたのですが、実際の意味は 「参照によってのみアクセス可能なデータ型」 のようです。 そんなわけで前者が正しい定義だと思って書いたこの記事は間違っています、ごめんなさい。 JavaScript のオブジェクト型が参照型 (コンピュータサイエンス用語) である、ということはさておきこの記事内容は間違っているのでご注意ください。 もうちょっとちゃんとまとめてから書き直したいと思います。 cf: Reference type - WikipediaJavaScript の型は、大別するとプリミティブ型と参照型に分けられる。 そしてオブジェクト型は参照型である」 と言われることが多々あります (そしてその説明は Java 経験者などにとってわかりやすいと思

    誤り : JavaScript のオブジェクト型は参照型ではないというお話 - vivid memo
    teramako
    teramako 2011/06/20
    とはいえ、ESは仕様、JSは実装だと思うので、JSは参照型といっても間違いではなさそうな...
  • new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo

    私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n

    new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo
    teramako
    teramako 2011/05/15
    言いたいことをほとんど言ってくれている。すばらしい。
  • 書評: 『JavaScript: The Good Parts ― 「良いパーツ」 によるベストプラクティス』 Douglas Crockford 著, 水野 貴明 訳 - vivid memo

    JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者: Douglas Crockford,水野貴明出版社/メーカー: オライリージャパン発売日: 2008/12/22メディア: 大型購入: 94人 クリック: 1,643回この商品を含むブログ (190件) を見る Amazon.co.jp でのレビューで高評価だったのでちょっと読んでみようかなぁ、と思って購入しました。 読んでみると思ったほど良い内容ではなかったので、ちょっと気になった部分を書いておきます。 初心者向けにしてはやや難あり? 書の 「はじめに」 には次のように書かれています。 書は JavaScript というプログラム言語についてのであり、偶然か、はたまた好奇心のためか、初めて JavaScript の世界へ飛び込もうとしているプログラマに向けて書かれている。 また

    書評: 『JavaScript: The Good Parts ― 「良いパーツ」 によるベストプラクティス』 Douglas Crockford 著, 水野 貴明 訳 - vivid memo
    teramako
    teramako 2011/02/17
    ボクも this.func = funcion() { ...} でのインスタンス作成は嫌いで、「擬似クラス型」の方がまだ好みだなあ
  • nsIProcess.init 実行時に MacOS X で NS_ERROR_FAILURE が発生する問題 - vivid memo

    自作の Firefox 拡張機能 *1 の互換性の報告の中に 「MacOS X Snow Leopard において nsIProcess.init が失敗する (例外が発生する)」 というものがあったのでちょっと調べてみました。 具体的な例外のメッセージは以下のとおり。 Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIProcess.init] nsIProcess とは nsIProcess とは XPCOM コンポーネントの 1 つで、OS のプロセスを扱うためのものです。 詳しいドキュメントは以下にあります。 nsIProcess - MDC Doc Center 例えば、Linux において /usr/bin/firefox というプログラムを新たに起動するためには、以下のように JavaScri

    nsIProcess.init 実行時に MacOS X で NS_ERROR_FAILURE が発生する問題 - vivid memo
    teramako
    teramako 2011/01/11
    ~.appと中の実行ファイルが同じ名前とは限らなかったような。nsILocalFileMac(だったかな)でアプリケーション情報が取れた気がする。後で確かめたい。
  • Firefox 4 にてコンテキストメニューを開く際に右クリックしたノードを取得する方法 - vivid memo

    Firefox の拡張機能 (アドオンの一種) の開発をして、コンテキストメニューに項目を追加し、コンテキストメニューからいろいろと操作をできるようにすることがあります。 コンテキストメニューを変更したり、イベントを取得したりする方法については次のページが参考になります。 ContextMenus - MDC コンテキストとして何がクリックされたか判定する 上に示したページにおいて、コンテキストメニューを開く際に右クリックしたノードを取得する方法として、次のことが書かれています。 コンテキストメニューはマウスだけではなく他の方法でも開かれ得るという事を覚えておく事は重要です。しかしながら、キーボードを使って開かれた場合でも、メニューが適用されるノード (コンテキスト) はあります。それは現在フォーカスのある要素です。マウスを使った場合には、コンテキストはクリックされた要素です。 この要素は

    Firefox 4 にてコンテキストメニューを開く際に右クリックしたノードを取得する方法 - vivid memo
  • 1