JavaScript 言語自体はクラスを提供せず、他の言語にはクラス継承メカニズムがありません。その継承はオブジェクトのプロトタイプを通じて実装されますが、これでは Cocos2d-JS エンジンの要件を満たすことができません。 Cocos2d-JS エンジンは Cocos2d-x から進化したため、Cocos2d-JS の初期バージョンである Cocos2d-HTML のほとんどすべての API は、Cocos2d-x API 自体をシミュレートするように設計されており、その多くは C++ で作成されました。オブジェクトと関数は比較的複雑であり、JavaScript 言語ではそれらを記述することができません。
オープン ソース コミュニティでは、John Resiq がブログ (http://ejohn.org/blog/simple-j... ance/) で単純な JavaScript 継承 (Simple JavaScript Inheritance) メソッドを提供しています。
John Resiq の単純な JavaScript 継承メソッドは、プロトタイプの継承メカニズムからインスピレーションを受けており、Java などのオブジェクト指向オブジェクトと同じクラス概念を持ち、すべてのクラスのルート クラス Class を設計しました。 Java Like Object と同様に、すべてのクラスは直接または間接的に Class を継承します。 以下は、Class を継承する例です。
/* Simple JavaScript Inheritance * By John Resig http://ejohn.org/ * MIT Licensed. */ // Inspired by base2 and Prototype (function(){ var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; // The base Class implementation (does nothing) this.Class = function(){}; // Create a new Class that inherits from this class Class.extend = function(prop) { var _super = this.prototype; // Instantiate a base class (but only create the instance, // don't run the init constructor) initializing = true; var prototype = new this(); initializing = false; // Copy the properties over onto the new prototype for (var name in prop) { // Check if we're overwriting an existing function prototype[name] = typeof prop[name] == "function" && typeof _super[name] == "function" && fnTest.test(prop[name]) ? (function(name, fn){ return function() { var tmp = this._super; // Add a new ._super() method that is the same method // but on the super-class this._super = _super[name]; // The method only need to be bound temporarily, so we // remove it when we're done executing var ret = fn.apply(this, arguments); this._super = tmp; return ret; }; })(name, prop[name]) : prop[name]; } // The dummy class constructor function Class() { // All construction is actually done in the init method if ( !initializing && this.init ) this.init.apply(this, arguments); } // Populate our constructed prototype object Class.prototype = prototype; // Enforce the constructor to be what we expect Class.prototype.constructor = Class; // And make this class extendable Class.extend = arguments.callee; return Class; }; })();
オブジェクト指向 Java 言語に精通している場合は、簡単に理解できるはずです。コードの 1 行目では、Class を継承する Person クラスを宣言しており、Class.extend() は、Class を継承していることを示しています。コードの 2 行目では、プロパティの初期化に使用されるコンストラクター init を定義します。コードの 3 行目では、属性 dance を返すことができる通常の関数 dance() を定義しています。
コードの④行は、NinjaクラスがPersonクラスから継承することを宣言します。コードの⑤行は、この関数の中で、this._super(false)ステートメントが親クラスのコンストラクターを呼び出して属性を初期化します。親クラス。行⑥に示すコードを参照してください。コードの 7 行目では、dance() 関数を書き換えます。これにより、親クラスの dance() 関数がオーバーライドされます。コードの 8 行目はこれです。_super() は親クラスの dance() 関数を呼び出します。コードの 9 行目は、サブクラス Ninja の新しく追加された関数 SwingSword() です。コードの ⑩ 行目は、 Person クラスを通じて p オブジェクトを作成し、コンストラクターへのパラメーターは true です。コードの最初の行は、log p オブジェクトの dance 属性を出力し、結果は true になります。
コードの最初の行は、Ninja クラスを通じて n 個のオブジェクトを作成します。デフォルトの初期化では、親クラスのダンス属性を初期化するために false が使用されます。したがって、コードの 1 行目は false を出力します。
この単純な JavaScript 継承メソッドは、一般的な意味でのオブジェクト指向の概念の継承とポリモーフィズムのメカニズムを実際に実装します。この単純な JavaScript 継承メソッドは、Cocos2d-JS 継承メカニズムの核心であり、Cocos2d-JS を理解して学習するには、単純な JavaScript 継承の使用法に慣れることが非常に重要です。
上記は JavaScript 拡張チュートリアル - Cocos2d-JS での JavaScript 継承の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

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

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

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

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい
