-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年03月22日

js2-modeの設定変更

Emacs で JavaScript を書く
js2-mode は Emacs で JavaScript を書くための major-mode です。 外部の JavaScript 処理系無しに (flymake のように) 文法上のエラーを表示するなど、 かなり意欲的な機能を備えています。

しかしその一方で、js2-mode のデフォルトの挙動はかなり独特です。 ここでは、それらの挙動を他の major-mode とそろえる方法を説明します。

 いろいろと設定変更の方法が書いてありました。

posted by hirono at 22:53| Comment(0) | TrackBack(0) | Emacs

js2-modeでタブ幅を変更

フッ君の日常 : Emacs での JavaScript 開発は js2-mode で決まり!
(add-hook 'js2-mode-hook
          '(lambda ()
             (setq js2-basic-offset 4)))



posted by hirono at 22:44| Comment(0) | TrackBack(0) | Emacs

JavaScript のプロトタイプチェイン

JavaScriptのプロトタイプチェインをちゃんと理解する - builder by ZDNet Japan

プロトタイプ
  コンストラクタを用いることで、複雑な初期化ができると紹介しました。しかし、コンストラクタは処理だけでオブジェクトを組立てるため、作られるオブジェクトの全貌がソースコードから見渡しにくくなってしまいます。そこで、 JavaScriptではもうひとつのオブジェクト初期化方法を用意しています。それが、プロトタイプです。

プロトタイプとはオブジェクトの雛型となるオブジェクトのことで、コンストラクタが呼び出される前にあらかじめプロパティを与えることができます。

プロトタイプの定義方法は簡単で、コンストラクタのprototypeプロパティにオブジェクトを格納しておくだけです。格納されたオブジェクトがそのク ラスのプロトタイプになります。例えばリスト7の例を、プロトタイプを使ってリスト8のように書くことができます。

 試してみました。文法がちょっとややこしいですが、:がハッシュのような役割をしているようです。無名関数もJavaScriptでは当たり前のように使われています。functionはEmacs-Lispのlambdaと似ています。

var ValEntry = function(title, val) {
  this.title = title;
  this.val = val;
};

ValEntry.prototype = {
  name: "Blog",
  showTitle: function() {
    alert(this.title);
  },
  showVal: function() {         // function
    alert(this.val);
  },
  showFull: function() {
    alert(this.title + "\n" + this.val);
  }

};

var test1 = new ValEntry("たいとる", "データ");
test1.showFull();
alert(test1.name);




posted by hirono at 21:34| Comment(0) | TrackBack(0) | JavaScript

JavaScript/EcmaScript interpreter for Emacs

ejacs - Project Hosting on Google Code
設定:
(setq load-path
(cons "/home/(適当なパス)/js-console" load-path))

(autoload 'js-console "js-console" nil t)


 M-x js-console
で起動。


posted by hirono at 19:53| Comment(0) | TrackBack(0) | Emacs

クロージャを利用したトグル・ボタンの例

第3回 変数の宣言とスコープ − @IT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>トグルボタン</title></head>
<body>

<form id="form1" runat="server">
  <div>
    <input id="btn" type="button" value="無効" />
  </div>
</form>

<script type="text/javascript">

document.getElementById('btn').onclick = setButtonState();

function setButtonState() {
    var flag = false;
    var btn = document.getElementById('btn');

    return function() {
        flag = !flag;
        this.innerText = flag ? "有効" : "無効";
  };
}
</script>

</body>
</html>


 Firefox3.6で、そのままコピペして実行したのですが、動きませんでした。

posted by hirono at 17:30| Comment(0) | TrackBack(0) | JavaScript

JavaScriptラジオボタン値の取得

ラジオボタン値の取得 - JavaScript Market
現在の背景色:
背景色変更: 標準

<script>
function disp(parts){
   f = parts.form;         //ラジオボタンの値を取得
   color = parts.value;    //取得値を変数colorに代入
   document.bgColor = color;  //bgColor()により背景色を変更
   f.infcolor.value = color;  //テキストフォームに取得値を表示
}
</script>

<form>
現在の背景色:<input name="infcolor" value="#ffffff" size="10"/>


背景色変更:
<!--onClick()により選択時にdisp()に引数を渡す-->
<input type="radio" value="#ffffff" checked onClick="disp(this)"/>標準
<input type="radio" value="#c0c0c0" onClick="disp(this)"/>灰
<input type="radio" value="#0000ff" onClick="disp(this)"/>青
<input type="radio" value="#ff0000" onClick="disp(this)"/>赤
</form>

 こういう方法で、ボタンやリンクを使わずに関数の実行ができるのですね。試していませんが、リストボックスでも同じことができるのかもしれません。いろいろ参考にさせていただきました。同じ名前のname属性を入れることでグループ化され、択一の選択状態になるみたいです。このままだと、選択したボタンすべてにチェックがついたままになっていました。

posted by hirono at 04:03| Comment(0) | TrackBack(0) | JavaScript

JaJavaScriptではブロック・レベルのスコープが存在しない

第3回 変数の宣言とスコープ − @IT
for (var i = 0; i < 10; i++) { // ブロック内の処理 } window.alert(i); // 表示結果は?
 試してみると、結果は10でした。

posted by hirono at 02:24| Comment(0) | TrackBack(0) | JavaScript

[JavaScript]データ型の確認

第3回 変数の宣言とスコープ − @IT
var x = 10;
window.alert(typeof x); // number


posted by hirono at 02:06| Comment(0) | TrackBack(0) | JavaScript