継承とは、サブクラスを使用して別の親クラスを継承することで、サブクラスは親クラスのすべてのプロパティとメソッドを自動的に持つことができます。このプロセスは継承と呼ばれます。 JS には継承を実装するためのメソッドが多数あります。JS はオブジェクト指向言語であり、そのオブジェクトはプロトタイプ属性を使用してシミュレートされます。この記事を使用して、js シミュレーションを通じてカプセル化する 3 つの方法について学びましょう。必要な方はぜひ参考にしてください。
//声明一个父类 function Person(name){ this.name=name; this.age=age; this.say=function(){ alert("我叫"+this.name); } } //声明一个子类 function Student(){ this.no=no; this.study=function(){ alert("我在学习!"); } } // 通过循坏,将父类对象的所有属性和方法,全部赋给子类对象 Object.prototype.extend=function(parent){ for(var i in parent){ this[i].parent[i]; } } var p=new Person("张三",12); var s=new Student("1234567"); //子类对象调用这个扩展方法 s.extend() console.log(s);
継承実装の上記の原則:
ループを通じて、親クラス オブジェクトのすべての属性とメソッドが子クラス オブジェクトに割り当てられます。ポイントは for-in ループです。Object を拡張しなくても、単純なループで実装できます。
しかし、このメソッドを使用して継承を実装する場合には、いくつかの欠点があります:
①1 回のインスタンス化を通じて完全なサブクラス オブジェクトを直接取得することはできません。最初に親クラスのオブジェクトとサブクラスのオブジェクトを取得してから、それらを手動でマージする必要があります
② Object を拡張する継承メソッドは、サブクラスのオブジェクトにも保持されます。
継承を実装する 2 番目の方法を見てみましょう~
2. プロトタイプ継承を使用します
この方法を紹介する前に、プロトタイプ オブジェクトとプロトタイプという 2 つの概念について説明します
1。
①プロトタイプを持つのは関数のみであり、すべての関数にはプロトタイプが必要です②プロトタイプ自体もオブジェクトです! ③プロトタイプは現在の関数の参照アドレスを指します! 2. __proto__: オブジェクトのプロトタイプ! ①オブジェクトのみが__proto__を持ち、すべてのオブジェクトが__proto__を持たなければなりません②__proto__もオブジェクトなので、独自の__proto__も持ちます。この線に沿って検索する順序がプロトタイプチェーンです。 ③ 関数と配列は両方ともオブジェクトであり、独自の __proto__ を持ちます//声明父类 function Person(name,age){ this.name=name; this.age=age; this.say=function(){ alert("我叫"+this.name); } } //声明子类 function Student(no){ this.no=no; this.study=function(){ alert("我在学习!我叫"+this.name+"今年"+this.age"); } } //将父类对象赋给子类的prototype Student.prototype=new Person("张三",14); //拿到子类对象时,就会将父类对象的所有属性和方法,添加到__proto__ var s=new Student(); s.study();プロトタイプ継承の原則を使用します: 親クラスのオブジェクトを子クラスのプロトタイプに代入すると、親クラスのオブジェクトの属性とメソッドがサブクラスのプロトタイプに出現します。次に、サブクラスをインスタンス化するときに、サブクラスのプロトタイプがサブクラス オブジェクトの __proto__ に含まれます。最後に、親クラス オブジェクトの属性とメソッドがサブクラス オブジェクトの __proto__ に表示されます。 この種の継承の特徴:①サブクラス自体のすべての属性はメンバー属性であり、親クラスから継承された属性はプロトタイプ属性です。 ② ワンステップインスタンス化では完成したサブクラスオブジェクトをまだ取得できません。 継承を実装する 3 番目の方法: call()、apply()、および binding() これら 3 つのメソッドは非常に似ており、パラメーターを渡す点のみが異なります。
function Person(name,age){ this.name=name; this.age=age; this.say=function(){ alert("我叫"+this.name); } } function Student(no,name,age){ this.no=no; this.study=function(){ alert("我在学习!"); } //将父类函数的this,指向为子类函数的this Person.call(this,name,age); } var s=new Student(12,"张三",24); console.log(s);3 つの関数の唯一の違いは、func のパラメーター リストを受け取る方法です。それ以外には、機能に違いはありません。 3つの関数の記述方法(違い): call記述メソッド: func.call(funcのthisが指すobj, funcパラメータ1, funcパラメータ2,...); apply記述メソッド: func; .apply(this が指す func obj, [func パラメータ 1, func パラメータ 2,...]); bind 記述方法: func.bind (func の this が指す obj) (func パラメータ 1, func パラメータ2,...) ;関連する推奨事項:
より多くのプルダウン更新データをロードするための mui プルアップのカプセル化プロセスの詳細な説明の例
以上がJavaScript シミュレーションを通じてカプセル化を実装する 3 つの方法とその記述方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ホットトピック









