検索
ホームページウェブフロントエンドjsチュートリアルMootools 1.2 チュートリアル クラス (1)_Mootools

簡単に言えば、クラスは変数と、これらの変数を操作して特定の関数を実装する関数のコレクションを含むコンテナです。大規模なプロジェクトでは、クラスは非常に役立ちます。
変数
これまでの一連のレッスンでは、ハッシュ オブジェクトでキーと値のペアを使用する方法を学習しました。そのため、次の例では、よく知られているいくつかの変数のみを含むクラスを作成しました。あなた:
参照コード:

コードをコピー コードは次のとおりです:

/ / class_one という名前のクラスを作成します
// 2 つの内部変数が含まれます
var Class_one = new Class({
variable_one : "I'm First",
variable_two : "I'm Second"
});

同様に、ハッシュ内の変数にアクセスできます。以下のコードでは、上で定義した Class_one クラスのインスタンスを作成します。
参照コード:
コードをコピー コードは次のとおりです:

var run_demo_one = function() {
// クラス Class_one のインスタンスを、demo_1 という名前で作成します。
varデモ_1 = new Class_one();
// デモ_1 の変数を表示します。
alert(demo_1.variable_one); 🎜>alert(demo_1.variable_two );
}

メソッド/関数
メソッドは、指定されたクラス内の関数を参照します (平たく言えば、クラス内の関数が呼び出されます)メソッド、名前を変更しただけです)。これらのメソッドは、このクラスのインスタンスを通じて呼び出す必要があり、クラス自体から呼び出すことはできません。変数を定義するのと同じようにメソッドを定義できます。違いは、メソッドに静的な値を代入し、それに匿名関数を割り当てる必要があることです。
参照コード:

コードをコピー コードは次のとおりです:
var Class_two = new Class({
variable_one : "I'm First",
variable_two : " 私は 2 番目です",
function_one : function(){
alert('最初の値 : ' this.variable_one)
},
function_two : function(){
alert(' Second Value : ' this.variable_two);
}
});

上の例では、キーワード this の使用に注意してください。上記のメソッドで操作する変数はすべてクラス内の変数であるため、キーワード this を使用してこれらの変数にアクセスする必要があります。そうしないと、未定義の値が取得されるだけです。
参照コード:

コードをコピー コードは次のとおりです:
// 修正
working_method : function(){
alert('最初の値 : ' this.variable_one);
},
// エラー
broken_method : function(){
alert(' 2 番目の値 : ' variable_two);
}

新しく作成されたクラスのメソッドの呼び出しは、それらのクラスの変数にアクセスするのと同じです。
参照コード:

コードをコピー コードは次のとおりです:
var run_demo_2 = function() {
// クラスをインスタンス化します class_two
var Demon_2 = new Class_two()
// function_one を呼び出します
demo_2.function_one()
// function_two を呼び出します
demo_2.function_two();
}

initialize メソッド
クラス オブジェクトの初期化オプションを使用すると、クラスに対していくつかの初期化操作を実行でき、一部のユーザーを処理することもできます。設定オプションと変数。 (Fdream 注: 実際、これはクラスの初期化メソッドと同等です。) メソッドのように定義できます:
リファレンス コード:

コードをコピー コードは次のとおりです。
var Myclass = new Class({
// 1 つのパラメーターを含む初期化メソッドを定義します
initialize : function( user_input){
// このクラスに属する変数を作成します
// そしてそれに値を割り当てます
// 値はユーザーによって渡された値です
this.value = user_input;
}
} )

この初期化を通じて他のオプションや動作を変更することもできます:
参照コード:

コードをコピー コードは次のとおりです:

var Myclass = new Class({
initialize : function(true_false_value){
if (true_false_value){
this.message = "このメッセージの内容はすべて true";
}
else {
this.message = "このメッセージの内容はすべて false";
}
}
})
// これは、myClass インスタンスの message プロパティを設定します。文字列
// "このメッセージが示すことはすべて true"
var myclass_instance = new Myclass(true)
// これにより、myClass インスタンスのメッセージ属性が次の文字列 / / "このメッセージの内容はすべて false"
var myclass_instance = new Myclass(false);

これはすべて、他の変数やメソッドを宣言しなくても機能します。各キーと値のペアの後のカンマを覚えておいてください。カンマを見逃して、存在しない脆弱性を追跡するのに多くの時間を費やすのは非常に簡単です。
参照コード:

コードをコピー コードは次のとおりです:
var Class_three = new Class( {
// このクラスはクラスの作成時に実行されます
initialize : function(one, two, true_false_option){
this.variable_one = one;
this.variable_two = two ;
if (true_false_option){
this.boolean_option = "真の選択";
else {
this.boolean_option = "偽の選択";
} ,
// いくつかのメソッドを定義します
function_one : function(){
alert('First Value : ' this.variable_one)
},
function_two : function(){
alert(' 2 番目の値 : ' this.variable_two);
}
});
var run_demo_3 = function(){
var Demon_3 = new Class_three("最初の引数", "2 番目の引数" );
demo_3.function_one();
demo_3.function_two();


クラスの作成時にいくつかの変数を設定しますデフォルト値は、ユーザーが最初の入力を提供しない場合に役立ちます。これらの変数を初期化メソッドで手動で設定し、各入力をチェックしてユーザーが対応する値を指定したかどうかを確認し、対応するデフォルト値を置き換えることができます。あるいは、MooTools の Class.extras によって提供される Options クラスを使用することもできます。
クラスにオプション関数を追加するのは、別のキーと値のペアをクラスに追加するのと同じように非常に簡単です。
リファレンス コード:




コードをコピー
コードは次のとおりです: var Myclass = new Class({ Implements: Options })

まず最初に、オプションの詳細を実装することにあまり心配しないでください。後のチュートリアルでさらに詳しく学びます。オプションを備えたクラスができたので、あとはデフォルトのオプションをいくつか定義するだけです。他のすべてと同様に、初期化が必要なキーと値のペアをいくつか追加するだけです。単一の値を定義する代わりに、次のようにキーと値のペアのセットを定義する必要があります。
参照コード:



コードをコピー
コードは次のとおりです。 var Myclass = new Class({ Implements: Options, options: {
option_one : "First Option",
option_two : "2 番目のオプション"
}
})


これらのデフォルトのコレクションができたので、このクラスの初期化時にユーザーがこれらをオーバーライドする方法を提供する必要もあります。デフォルト値。新しいコード行を初期化関数に追加するだけで、あとは Options クラスが実行します。
参照コード:



コードをコピー
コードは次のとおりです: var Myclass = new Class({ Implements: Options, options: {
option_one : "Firstデフォルト オプション ",
option_two : "2 番目のデフォルト オプション"
}
initialize: function(options){
this.setOptions(options);
}
})


これが完了したら、キーと値のペアの配列を渡すことでデフォルトのオプションをオーバーライドできます。
参照コード:



コードをコピー
コードは次のとおりです。 // すべてのデフォルト オプションをオーバーライドしますvar class_instance = new Myclass({ options_one : "最初のオプションをオーバーライド" ,
options_two : "2 番目のオプションをオーバーライドします"
});
// デフォルト オプションの 1 つをオーバーライドします
var class_instance = new Myclass({
options_two : "2 番目のオプションをオーバーライドします"
})


初期化関数の setOptions メソッドに注意してください。これは、クラスをインスタンス化するときにオプションを設定できるようにする、Options クラスで提供されるメソッドです。
参照コード:
コードをコピー コードは次のとおりです:

var class_instance = new Myclass( );
// 最初のオプションを設定します
class_instance.setOptions({options_one : "Override First Option"});

オプションを設定したら、次のように渡すことができます。それらを訪問するための変数オプション。
参照コード:
コードをコピー コードは次のとおりです:

var class_instance = new Myclass( );
// 最初のオプションの値を取得します
var class_option = class_instance.options.options_one;
// 変数 class_option の現在の値は「最初のデフォルト オプション」です

クラス内でこのオプションにアクセスしたい場合は、次のステートメントを使用してください:
参照コード:
コードをコピー コードは次のとおりです。

var Myclass = new Class({
Implements: Options,
options: {
option_one : "First Default Option",
option_two : " 2 番目のデフォルト オプション"
}
test : function(){
// this キーワードを使用して
// このクラスを参照することに注意してください
alert(this .option_two);
}
});
var class_instance = new Myclass();
// [2 番目のデフォルト オプション]
class_instance.test() を示すダイアログ ボックスが表示されます。 ;

これらをクラスに結合すると、次のようになります:
参照コード:
コードをコピー コードは次のとおりです:

var Class_four = new Class({
実装: オプション,
options: {
option_one : "最初のオプションのデフォルト値" ,
option_two : " 2 番目のオプションのデフォルト値",
},
initialize: function(options){
this.setOptions(options)},
show_options : function; (){
alert (this.options.option_one "n" this.options.option_two)
},
});
var run_demo_4 = function ); Class_four({
option_one : "新しい値"
});
demo_4.show_options()
}
var run_demo_5 = function(){
var Demon_5 = new Class_four( );
demo_5.show_options();
demo_5.setOptions({option_two : "新しい値"});
demo_5.show_options()
// のインスタンスを作成します。 class class_four
// new_option という名前の新しいオプションを指定します
var run_demo_6 = function(){
var Demon_6 = new Class_four({new_option : "これは新しいオプションです"}); .show_options();
}


コードと例
PHP に詳しい人は、次の例の show_options メソッドの print_r() 関数を認識しているかもしれません。


コードをコピーします
コードは次のとおりです。 show_options: function(){ alert(print_r) (this.options, true)); }

これはネイティブ JavaScript メソッドではなく、PHP2JS プロジェクトの Kevin van Zonneveld のコードの一部にすぎません。 PHP に詳しくない人のために説明すると、print_r() メソッドは、配列内のキーと値のペアのフォーマットされた文字列を提供します。これは、スクリプトのデバッグ過程で非常に便利なデバッグ ツールです。この機能には、後で提供されるダウンロード パッケージに詳細なコードが含まれており、テストや研究に使用することを強くお勧めします。
リファレンスコード:


コードをコピー
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、