追記 Dateはmutableなのでcloneするときはちゃんとコピーしてあげないといけない気がしてきたのでそのように修正。 Boolean、Number、String、RegExpはimmutableだからまぁそのまま返せばいいよねと。 ん?というかそもそもdeep cloneって基本は全部cloneつくるってことだよなぁ。。 そのまま返せばいいってなんかおかしいな。ってことでやっぱり全部コピーをつくることに。 あと、clone作ってから元を変更してもclone先は変更されないことをたしかめる簡単なテストもしているテストコードに修正。ちゃんとしたテストじゃないけど。 もひとつ追記 object=clone(object); - Thousand Years ↑こちらでもdeep cloneについて検討されていました。 追記以上 ここから本編 404 Blog Not Found:java
prototype.js など多くの JavaScript ライブラリはブラウザ上で実行されることを前提に書かれている。もったいないですね。でも頑張ればシェルとかブラウザを使わないスクリプトでも使えます。もちろん制限はあるので本気で使ったりしないように…。 ライブラリによって方法は異なるので、prototype.js で使えるようになるまでの過程を記しておく。 d:\scripts\js\ijscript>cscript //nologo ijsc.js ijsc> [1,2,3].map(function (v) { return v + 1 }) TypeError: オブジェクトでサポートされていないプロパティまたはメソッドです。 ijsc> load('http://prototypejs.org/assets/2007/1/18/prototype.js') TypeError:
http://blog.livedoor.jp/dankogai/archives/50957890.html まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。影響が大きすぎるので、よっぽど変態的なライブラリじゃないと使わない。他のライブラリと組み合わせるとほぼ確実に問題が起きる。それから、deep_cloneが欲しい場合はJSONを作ってevalすればよい。パフォーマンスを気にする場合とか、浅いコピーが必要な場合はそれなりに工夫する必要があるけど。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 http://subtech.g.hatena.ne.jp/cho45/
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
12 月中にプレゼンテーションツール S6 を公開しようと考えていますが、ライセンスは MIT ライセンスにしようと考えています。 ということで、今まで作った以下のプレゼンにから読み込まれている s6.js ファイルのライセンスはすべて MIT ライセンスということにします。 http://amachang.art-code.org/pr/ http://amachang.art-code.org/shibuyajs24/ http://amachang.art-code.org/ejohn/ これから、たくさんの人が S6 に参加しやすいようにコードのリファクタリングや、テストの自動化などを行っていく予定です。 よろしくお願いします。
コピペメモ 今までの $X は evaluate を二回する問題があってダサいので、使い勝手をそのままにしつつ新しくして使いはじめました。 type 指定を導入 ECMAScript 側で受けとりたい型を指定する。 (Array, String...) XPathResult.BOOLEAN_TYPE とか指定するのはめんどいし覚えられない。 type 指定なしの場合は UNORDERED_NODE_ITERATOR_TYPE をそのまま Array に変換してかえす たぶんこれでも殆どの場合は問題ないと思う ノード集合じゃない (number とか) ならそれぞれそのままかえす (いままでとおなじ) type 指定で Array を指定した場合は ORDERED_NODE_SNAPSHOT_TYPE を Array に変換してかえす UNORDERED なやつで特別問題がある場合つかう
以下のサイトからダウンロードしてお使いください。 Prototype.js 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/Prototype jQuery 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/jQuery 使いにくいところがあれば すぐになおしますので、コメントやブックマークなどで教えていただければ嬉しいです。 他のライブラリのプラグインに関して そのうち、開発したいなあとは思っているのですが。 そのライブラリの空気感(コンセプト)を読めないと、なかなか使いやすいプラグインは書けないので時間がかかりそうです。 もし 誰か書いてくれる人がいればとてもありがたいなあ。。。とか思っています。 いませんよねいませんよね><? 「こんな、感じで
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
XPath は jQuery や Prototype.js と競合する技術ではなく、むしろ共存する技術です - IT戦記について軽く。 僕はGreasemonkeyを書くときに必ずといっていいほどXPathを使っている。XPathなしでいろんなサイトのHTMLを弄ることは最早苦痛でしかなくて、XPathがものすごく強力で、便利なであることは良く実感している。 でも、 僕は自分が管理するサイトでXPathを使うことはない、つまり汎用JSライブラリとXPathを併用することはないだろうなと思う。 理由は簡単で、自分が管理するサイトであれば適切なマークアップによってシンプルにDOM操作を行えるから。 JavaScriptから操作する各要素に、id,name,classなどの適切な属性を指定してあれば、getElementByIdなどのネイティブなメソッドで高速にアクセスできます*1。 普通はこれ
http://coderepos.org/share/wiki このように、既存の HTML に手を加えることなく、 JavaScript による機能追加ができます。 IE で見てもそれなりに実用的な速度で動いていると思いませんか><(欲をいうともうちょっと最適化したいですが。。) アッピールアッピール
昨日のエントリのブクマやコメントで jQuery からの移行がめんどう 時代は jQuery のようなコメントがありました。 これらのコメントから おそらく、「XPath が jQuery や YUI、Prototype.js、Dojo、MochiKit などの汎用 JS ライブラリと競合する」と思ってる方が多いのかなと思いました。 結論 XPath は汎用 JS ライブラリとは競合する技術ではなく、共存する技術だと僕は考えています。 理由 汎用的な JS のライブラリには、大きく以下のような機能があります。 DOM ツリー上の要素やノードを取得する DOM に新しい要素やノード、属性、プロパティ、イベントなどを追加する その他、クロスブラウザとか それに対して XPath が提供するのは DOM ツリー上の要素やノードを取得する というシンプルな機能だけです。 つまり、 XPath は汎
JavaScript-XPath JavaScript-XPath is the FASTEST DOM 3 XPath (XPath 1.0) implementation in JavaScript. This code runs 10 times faster than Google Ajaxslt's xpath.js!! Release/Download Latest Version Latest Compressed Version If you can use subversion, check out the trunk with: svn co http://svn.coderepos.org/share/lang/javascript/javascript-xpath/trunk/ jsxpath Bindings jQuery Prototype YUI How to
先日、MozillaでECMAScript(JavaScript)の仕様を作っているJohn Resigさんが来日しました。 その際、1時間ほどのQ&Aの司会と、ライトニングトークでの発表を私させていたただきました。 その際、基調講演をしてくださった、etoさん(http://eto.com/d/PresenForJohnResig.html)のコメント。 こないだのJohn Resigによる講演の後に一緒に飲んだんですけど, その席で聞いた話がすんごく面白かったな. いろいろ面白かったんだけど,特にjquery2が面白かった. http://ejohn.org/apps/jquery2/ このURLなんですけど,コードはこんな感じ. <script src="http://jquery.com/src/latest/"></script> <script src="parse.js"><
if (!document.implementation || !document.implementation.hasFeature || !document.implementation.hasFeature("XPath", null)) (function() { var uai = new function() { var ua = navigator.userAgent; if (typeof(RegExp) == "undefined") { if (ua.indexOf("Opera") >= 0) { this.opera = true; } else if (ua.indexOf("Netscape") >= 0) { this.netscape = true; } else if (ua.indexOf("Mozilla/") == 0) { this.mo
8 年。 世界が XPath の真の実力を発見するのに要した時間である。 1999 年、W3C により勧告された XPath は、「なにコレ読めねえwww XPath きめえwww」などと言われもした、 ともすれば不遇とすらいい得る歳月を経て、あたりのそこここに満ち充ちていた「DOM まじめんどくせえ」という思いによって、ふたたび表舞台に招来された。 XPath は、DOM ツリーの「ancestor」と「descendant」、「lastChild」と「firstChild」とを取り結ぶ、もっとも古くてもっとも新しい、そして、もっとも重要な技術だ。次の 8 年を自らの手で創り出すために、私は DOM 3 XPath に注目した。 XPath
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く