atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
オチャメモ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
オチャメモ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
オチャメモ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • オチャメモ
  • JavaScript-勉強会

オチャメモ

JavaScript-勉強会

最終更新:2008年08月24日 10:47

ochamemo

- view
だれでも歓迎! 編集

はじめに

自分もなんとなくjavascripを扱ってきたくちで、そろそろjavascriptを本格的にやろうかなと。 この資料も昨日やっつけでつくったものなのでつっこみどころも多いです。

javascriptってなに?

  • 名前について
    • java とはまったく関係ない。
    • nestscape者がjavaのブームにのっただけ。
    • もともとはLivescriptという名前。
    • 現在はECMAScriptという名称で標準化されている。
  • 簡単に始められる!
  • メモ帳とブラウザでできる!
    javascript:alert("aaa")
    
  • 軽く見られがちだけど実は奥が深い!
  • ライブラリ
    • 現在多くのライブラリが普及しているが、文法がなんだかそれぞれによって違う。
    • 普及してるのはPrototype.jsというライブラリ。このソースの中に多くのクラスが含まれている。とりあえずソースを読むのが一番理解を深めるらしい。
    • でもソース読むにしても基本がわからないと!
    • 基本的なことを理解してないとモヤモヤ感がなくならず、なんとなく使うことになる。
    • そこでこの本!→]

関数の作り方

これだけです。

function hoge() {
  alert('hello!')
} 
hoge(); // 'hello!'

無名関数というのもあります。

var hoge = function () {
  alert('hello!')
};
hoge(); // 'hello!'
var fuga = hoge;
huga(); // 'hello!'

変数

いきなり代入。これはグローバル変数となる。

hoge = 0;

ローカルは?

x = 0;
function hoge() {
  var x = 1; // varを宣言
  alert(x); // 1
}
alert(x); // 0

上書き注意!

x = 0;
function hoge() {
  x = 1;
  alert(x); // 1
}
alert(x); //  1が表示。

varを宣言しないと、グローバル変数とみなされる。

クラス定義はどうする?

コンストラクタを定義すればよい。コンストラクタとは関数定義のこと。

function Hoge(){};

で、これをnewしたらHogeオブジェクトのできあがり

var hoge = new Hoge();

フィールドを定義したい場合は以下のようにthisをつけて代入すればよい

var Hoge = function(){
  this.field1 = 0;
  this.field2 = 'hoge';
};

メソッドはこんな感じ。

var Hoge = function(){
  this.field1 = 0;
  this.mehod = function() {alert('fugaga!');}
};

↑でもこれだとメモリ効率が悪いよ。そこでプロトタイプ

Hoge.prototyep.method =  function() {alert('fugaga!');}

クラスメソッドは?

Hoge.classMethod = function() {alert('classMethod!');}

クラス変数は?

Hoge.classProperty = 'HOGE';

で最終的にはこうなる。

var Hoge = function(){
  this.field1 = 0;
  this.field2 = 'hoge';
}
Hoge.prototyep.method =  function() {alert('fugaga!');}
Hoge.classMethod = function() {alert('classMethod!');}
Hoge.classProperty = 'HOGE';

このようにjavascriptでの定義は、最初にまとめて定義するのではなく、実行しながらプロパティを増やしていき、少しづつ肉付けしながら定義する。
いうなれば、雪だるまを転がしながらどんどん機能を追加していくような感じ。

プロトタイプってなに?

  • 雛形となるオブジェクトインスタンスのこと。
  • ようするにプロトタイプとはjavaでいうインスタンス(多分)。
    -プロトタイプベースオブジェクト指向とはつまりインスタンスベースクラス指向のこと。
    -javaのようにクラスの雛形をもとに静的にクラスを生成するのではなく、インスタンスをベースにクラスを量産するというイメージ。

プロトタイプの仕組み(プロトタイプチェーン)

  1. コンストラクトした時点では、prototypeは通常、ただの空オブジェクト。
  2. まずオブジェクト自身のプロパティから、該当のプロパティ名を探索
  3. なかった場合、オブジェクトのprototypeオブジェクトのプロパティの中から該当する名前のプロパティを探す。
  4. それでもなければ、そのプロトタイプオブジェクトのprototypeから探索する。
  5. 最終的になにもプロパティを持たないprototypeになるまでこれを繰り返す。
  6. 見つからなければ、そこで代入になる。参照だったらundefinedのエラーになる
  7. これがプロトタイプチェーン。
    この仕組みを利用してクラスの継承が行われるのだけど、ちょっと複雑なので今回は割愛。

実はなんでもハッシュ

javascriptのオブジェクトはハッシュ(連想配列)で表現できる

image.width;
image.height;
image.draw();

これらのプロパティは、実は以下のようにアクセスできる!

image;
image;
image();

だから、こんな定義&呼び出しもできる。

var image = {width:100, height:100, disp:function(){alert("width:"+this.width)}};

実は、javascriptのオブジェクトとは連想配列なんです。

var o = new Object; 

これは下のように定義できるのです。なるほど!

var o = {};

ツールの紹介

alertで昔ながらのprintfデバッグでもいいけど、下記ツールを使ったほうが断然効率いいですよ。

  • FireFox
    • FireBug
      「firefox firebug」で検索
      
    • WebDeveloper
      「firefox webdeveloper」で検索
      
  • IE
    「InternetExplorer Developer」で検索
    
「JavaScript-勉強会」をウィキ内検索
LINE
シェア
Tweet
オチャメモ
記事メニュー

メニュー

  • Tips
  • まとめ
  • ハマリ
  • 本
  • その他
  • このwikiのページ一覧

リンク

  • ブログ
  • OCHAGL
  • Wiki文法

アクセス数

  • 本日: -
  • 昨日: -
  • 全体: -


ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
最近更新されたページ
  • 6157日前

    C言語-まとめ
  • 6160日前

    Emacs-Tips
  • 6161日前

    Python-まとめ
  • 6164日前

    Python-Tips
  • 6165日前

    GoogleAppEngine-Tips
  • 6165日前

    VMWare-Tips
  • 6165日前

    Windows-Tips
  • 6165日前

    Linux-Tips
  • 6166日前

    Screen-Tips
  • 6168日前

    トップページ
もっと見る
「まとめ」関連ページ
  • No Image PHP-まとめ
  • No Image ActionScript-まとめ
  • No Image C言語-まとめ
  • No Image JavaScript-まとめ
最近更新されたページ
  • 6157日前

    C言語-まとめ
  • 6160日前

    Emacs-Tips
  • 6161日前

    Python-まとめ
  • 6164日前

    Python-Tips
  • 6165日前

    GoogleAppEngine-Tips
  • 6165日前

    VMWare-Tips
  • 6165日前

    Windows-Tips
  • 6165日前

    Linux-Tips
  • 6166日前

    Screen-Tips
  • 6168日前

    トップページ
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. ソードランページ @ 非公式wiki
  7. SYNDUALITY Echo of Ada 攻略 ウィキ
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. ドラゴンボール Sparking! ZERO 攻略Wiki
  10. 星飼いの詩@ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 発車メロディーwiki
  7. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  8. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  9. オレカバトル アプリ版 @ ウィキ
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 千鳥の鬼レンチャン 挑戦者一覧 - 千鳥の鬼レンチャン サビだけカラオケデータベース
  3. 召喚 - PATAPON(パタポン) wiki
  4. ロスサントス警察 - ストグラ まとめ @ウィキ
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. ステージ - PATAPON(パタポン) wiki
  7. 犬 ルリ - ストグラ まとめ @ウィキ
  8. ステージ攻略 - パタポン2 ドンチャカ♪@うぃき
  9. 鬼太郎誕生 ゲゲゲの謎 - アニヲタWiki(仮)
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.