ホームページ > ウェブフロントエンド > jsチュートリアル > インターフェースインターフェース。JavaScript のデザインパターンの 1 つ。

インターフェースインターフェース。JavaScript のデザインパターンの 1 つ。

高洛峰
リリース: 2016-11-25 11:09:22
オリジナル
1550 人が閲覧しました

オブジェクト指向の考え方を使用して JavaScript を記述する方法は、初心者にとっては難しいはずです。私たちがよく使用する JQuery は、実際にはオブジェクト指向の考え方でカプセル化されています。今日は、Javascript と C# でのインターフェイスの使用方法を見ていきます。 C# や Java には Interface のようなキーワードがありますが、JavaScript にはその特性を利用して Interface を模倣することができますが、それにはいくつかのメソッドを追加する必要があります。チェックアクション。
次のインターフェイスの役割を見てみましょう:

このインターフェイスを継承する場合は、このインターフェイスで定義されたメソッド (メソッド シグネチャ) を実装する必要があります

//JavaScript は現在メソッド シグネチャの制約を実装できません
var インターフェイス= function (名前, メソッド) {

if (arguments.length != 2) { throw new Error("インターフェイスの長さが 2 より大きい"); this.Name = name this; ;

for (var i = 0; i

if(typeofmessages[i]!== string) {

throw new Error("メソッド名が文字列ではありません") ; this.Method.push(methods[i]);

} }

/*インターフェースの静的メソッド*/

Interface.ensureImplement = function (object) {

if { varinterface1 = argument[i]; If (interface1.constructor !== Interface) {

throw new Error("引数がインターフェイスではありません")

}

for (var j = 0; j throw new Error( "インスタンスはインターフェイスを実装していません");インスタンスのメソッド名がインターフェースで定義されているかどうか。

最初にインターフェイス (2 つのパラメーター) を定義し、2 番目のパラメーターはインターフェイス内のメソッド名です。 Check メソッドは、単純な 2 レベルの for ループを使用して比較アクションを実行します。

このインターフェイスの使用方法を見てみましょう:

var person = new Interface("person", ["GetName", "GetAge"]); var Man = function (name, age) { this.Name = name this .Age; = age; } Man.prototype = { GetName: function () { return this.Name; }, // GetAge: function () { return this.Age } } var test = function (instance) { Interface.ensureImplement; , 人); var name = インスタンス.GetName(); アラート(名前); } test(new Man("Alan",20));

上記の GetAge メソッドにアノテーションを付けると、問題が発生しました。 ensureImplement を実行したところ、このメソッドが実装されていないことがわかりました。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート