第4回JavaScriptゼミ セクション2-8 発表者 直江 宗紀.

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

構造体 構造体とは? 複数のデータをパックしたもの。 新しい “ 型 “ として使用できる. 構造体 キーワード struct strcut は構造体を宣言する命令。 struct { double x,y; }a,b,c; ↑ ここまでが宣 言 ← この形式で、構造体 a,b,c, を定 義.
第6回 JavaScript ゼミ セクション3-6 発表者 直江 宗紀. 組み込み関数  JavaScript に予め用意された関数  特定のオブジェクトに依存していない  単に関数名で呼び出すことが可能.
Scala + Liftフレームワーク その2.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
SSJSでも使える!Javascriptで オブジェクト指向プログラミング入門
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
第11回JavaScriptゼミ セクション8-2 発表者 直江 宗紀.
JavaScript プログラミング入門 2006/11/10 神津.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
プログラミング言語としてのR 情報知能学科 白井 英俊.
JavaScriptゼミ第2回 2-2 変数とリテラル 発表者 直江宗紀.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
Javaのための暗黙的に型定義される構造体
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
VBA H106077 寺沢友宏.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
第9回JavaScriptゼミ セクション6-2 発表者 直江 宗紀.
第1回 JavaScriptゼミ ・ scriptエレメント ・ 記述における諸注意 ・ 古いブラウザへの対応方法
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
JavaScript 成瀬 基樹 平野 敦 北浦 繁.
見た目を定義する技術 CSS(スタイルシート).
アルゴリズムとデータ構造 2011年6月13日
構造体.
社会人学習講座 「Javaプログラミング概論」
JSFによるWebアプリケーション開発 第6回
ピカチュウによる オブジェクト指向入門 (新版)
XML読み込みとDOM操作で Ajaxに近づこう
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
補足説明.
基礎プログラミング演習 第10回.
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
アルゴリズムとプログラミング (Algorithms and Programming)
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
第7回JavaScriptゼミ セクション4-5 発表者 直江 宗紀.
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
独習Javaゼミ第10回 セクション1~3 発表者 直江 宗紀.
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
一時的な型 長谷川啓
ウェッブページ書法の復習 ネットワーク論以前のお話.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
~let's take fun when you can do it~
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
第2回独習Javaゼミ 第3章 セクション4~5 発表者 直江 宗紀.
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
アルゴリズムとデータ構造1 2009年6月15日
第5回 プログラミングⅡ 第5回
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2010年6月17日
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
情報処理Ⅱ 2005年11月25日(金).
JavaScript    プログラミング入門 2-3 式と演算子 2006/10/12 神津 健太.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

第4回JavaScriptゼミ セクション2-8 発表者 直江 宗紀

prototypeオブジェクト prototypeオブジェクトとは 既存のオブジェクトへ・・・ 特殊なオブジェクト ユーザ定義のプロパティの追加 ユーザ定義のメソッドの追加 オブジェクトの継承 特殊なオブジェクト (オブジェクトから見ればプロパティに相当)

プロパティ、メソッドの追加 プロパティ追加の書式 メソッド追加の書式 オブジェクト名.prototype.プロパティ名 = プロパティ値 オブジェクト名はインスタンス名では無い プロパティ名は追加したいプロパティのこと プロパティ値は追加したいプロパティの初期値 メソッド追加の書式 オブジェクト名.prototype.メソッド名 = 追加したいメソッド名 基本的な形はプロパティ追加と同じ 追加したいメソッドはfunctionキーワードで定義可能

プロパティ追加 プログラム例(1) -前略- // Dateオブジェクトにnoteを追加 Date.prototype.note = null ; // インスタンスの作成 var today = new Date() ; today.note = "今日はいい天気" ; var birthday = new Date(1959,6,3) ; birthday.note = "私の誕生日" ; // 2つのインスタンスを表示 document.write(today.note,"<br>") ; document.write(birthday.note,"<br>") ; -後略- 補足:以降、以下のことを省略する -前略-の内容 <html> <head> <meta http-equiv="Content-Script-Type“ content="text/javascript"> </head> <body bgcolor="#ffffff"> <script language="JavaScript" type="text/javascript"> -後略-の内容 </script> </body> </html>

プログラム例(1)結果

プロパティの追加 プログラム例(2) -前略- function _getDayOfWeek(){ var dayOfWeek=new Array("日","月","火","水","木","金","土") ; return dayOfWeek[this.getDay()] ; } Date.prototype.getDayOfWeek=_getDayOfWeek ; var today=new Date() ; document.write("<center><h2>") ; document.write("今日は平成") ; document.write(today.getFullYear()-1988,"年") ; document.write(today.getMonth()+1,"月") ; document.write(today.getDate(),"日(") ; document.write(today.getDayOfWeek(),"曜日)です") ; document.write("</h2></center>") ; -後略-

プログラム例(2)の結果

オブジェクトの継承 継承 継承元オブジェクトに新たにメソッドを加えた 新しいオブジェクトを作る JavaScriptでは「継承に近い」機能を持つ (継承自体と同一ではない) 実装にはprototypeを利用する

具体的な継承例 Customerオブジェクト GoldCustomerオブジェクト theNameプロパティ theNumプロパティ theDateプロパティ displayInfo()メソッド theNameプロパティ theNumプロパティ theDateプロパティ displayInfo()メソッド 継承 goldPointプロパティ

継承の実装と使用 // ---------Customer->GoldCustomerの実装 function GoldCustomer(name,num,theDate,goldPoint){ this.base=Customer ; this.base(name,num,theDate) ; this.goldPoint=goldPoint ; } GoldCustomer.prototype=new Customer ; // ---------利用例 var customer1=new GoldCustomer(“直江”,100,new Date(),100) ; customer1.displayInfo() ; document.write(customer1.goldPoint()) ;

実装結果例

Functionオブジェクト 無名関数 Functionを用いることにより無名関数を生成できる 書式: 特徴: 変数=new Function(“引数1”,”引数2”,・・・,”return 戻り値”) ; (“Function”と先頭が大文字になっていることに注意) 特徴: 変数にはオブジェクトが格納されている ただし、関数自身は無い

具体例 ・通常の宣言との違い function sum(x,y){ return (x+y) ; } sum=new Function(“x”,”y”,”return x+y”) ; 変数にオブジェクトを格納。 sumはオブジェクトとなる。 “sum”という関数を定義。 sumは関数(メソッド)となる。

Objectオブジェクト Objectオブジェクトの特徴 全てのオブジェクトの基 コンストラクタの定義が不要 メソッド、プロパティを持たない空のオブジェクト メソッド、プロパティの追加が容易

Objectオブジェクトの使用例 インスタンスの生成例(meインスタンス) プロパティの追加 メソッドの追加(helloメソッドの追加) var me = new Object() ; プロパティの追加 me.name=“直江” ; me.year=21 ; メソッドの追加(helloメソッドの追加) function hello(){ document.write(“Hello!”) ; } me.hello=hello ;

Object使用サンプル サンプルプログラム(3) -前略- var me=new Object() ; me.name="直江" ; me.year=21 ; function hello(){ document.write("My Name:"+this.name+"<br>") ; document.write("Year:"+this.year+"<br>") ; } me.sayHello=hello ; me.sayHello() ; -後略-

プログラム例(3)の結果

演習問題 四則演算それぞれがメソッドとなっている与えられた二つの値を計算するオブジェクトがあったとする。そのオブジェクトを継承によりビット演算にも対応させよ。さらに、prototypeによりビットシフト演算機能も追加せよ。コンストラクタへ渡す引数の値(計算させる値)は任意とする。結果表示に関して、引数と結果の表(tableタグ)により表示せよ。形式は問わないものとする。

付録1 HTMLタグ タグの一つ一つはオブジェクト(エレメント)として存在 入れ子形式記述である必要性 基本はタグを入れたら閉じるタグも記述 <h1>・・・(中略)・・・</h1> ←h1タグエレメント 入れ子形式記述である必要性 <div>・・・(中略)・・・<font>・・・</font></div> fontタグは「divタグに属するエレメント」と認識される →<div>・・・(中略)・・・<font>・・・</div></font>は原則不可 基本はタグを入れたら閉じるタグも記述 brタグ,imgタグなどのように閉じる必要が無い物があるが 基本的には<タグ>~</タグ>という書式である

付録2 tableタグ trタグ thタグ tdタグ 表を作成するためのタグ(入れ子形式のタグ) trタグ,tdタグ,thタグを利用し表を形成 trタグ TableRowの略で、行を作成する thタグ TableHeaderの略で、項目題等を提示するのに利用 tdタグ TableDataの略で、セルを作成するのに利用

tableタグのサンプル <html lang=“ja”> <head> <title>Sample:TableElement</title> </head> <body> <table border=1> <tr> <th>Head1</th> <th>Head2</th> </tr> <td>Data1</td> <td>Data2</td> </table> </body> </html>

tableタグの表示結果