JS オブジェクト継承の N モードを理解する_JavaScript スキル
この記事では、参考のために JS オブジェクト継承の N モードを共有します。
1. プロトタイプチェーンの継承
function Person(){}; Person.prototype = { constructor: Person, name: "Oliver" }; function People(){}; People.prototype = new Person(); People.prototype.constructor = People; People.prototype.sayName = function(){ return this.name; }; var ins = new People(); console.log(ins.sayName());
2. コンストラクターの借用 (偽のオブジェクト、古典的な継承)
1. パラメータなし
function SuperType(){ this.color = ["red","yellow","white"]; } function SubType(){ SuperType.call(this); } var instance1 = new SubType(); var instance2 = new SubType(); instance1.color.pop(); console.log(instance1.color); //["red", "yellow"] console.log(instance2.color); //["red", "yellow", "white"]
2. パラメータ
があります。function SuperType(name){ this.name = name; this.number = [21,32,14,1]; } function SubType(name,age){ SuperType.call(this,name); this.age = age; } var instance1 = new SubType("Oliver",18); var instance2 = new SubType("Troy",24); instance2.number.pop(); console.log(instance1.name + instance1.age + instance1.number); //Oliver1821,32,14,1 console.log(instance2.name + instance2.age + instance2.number); //Troy2421,32,14
3. 組み合わせ継承 (擬似古典継承)
1. パラメータなし
function SuperType(){ this.color = ["red","yellow","white"]; } SuperType.prototype.sayColor = function(){ return this.color; }; function SubType(){ SuperType.call(this); this.number = 321; } SubType.prototype = new SuperType(); SubType.prototype.constructor = SubType; SubType.prototype.sayNumber = function(){ return this.number; }; var instance1 = new SubType(); var instance2 = new SubType(); instance2.color.pop(); console.log(instance1.color + instance1.number); //red,yellow,white321 console.log(instance2.color + instance2.number); //red,yellow321
2. パラメータ
があります。function SuperType(name){ this.name = name; this.number = [32,1342,11,1]; } SuperType.prototype.sayName = function(){ return this.name; }; function SubType(name,age){ SuperType.call(this,name); this.age = age; } SubType.prototype = new SuperType(); SubType.prototype.constructor = SubType; SubType.prototype.sayAge = function(){ return this.age; }; var instance1 = new SubType("Oliver",18); var instance2 = new SubType("Troy",24); instance2.number.pop(); console.log(instance1.sayName() + instance1.sayAge() + instance1.number); //Oliver1832,1342,11,1 console.log(instance2.sayName() + instance2.sayAge() + instance2.number); //Troy2432,1342,11
3. 寄生結合継承 (参照型にとって最も理想的なパラダイム)
function inheritPrototype(subType,superType){ var prototype = Object(superType.prototype); prototype.constructor = subType; subType.prototype = prototype; } function SuperType(name){ this.name = name; this.number = [321,321,43]; } SuperType.prototype.sayName = function(){ return this.name; }; function SubType(name,age){ SuperType.call(this,name); this.age = age; } inheritPrototype(SubType,SuperType); SubType.prototype.sayAge = function(){ return this.age; }; var instance1 = new SubType("Oliver",18); var instance2 = new SubType("Troy",24); instance2.number.pop(); console.log(instance1.sayName() + instance1.sayAge() + instance1.number); //Oliver18321,321,43 console.log(instance2.sayName() + instance2.sayAge() + instance2.number); //Troy24321,321
または、inheritPrototype 関数を次のように記述することもできます:
function inheritPrototype(SubType,SuperType){ SubType.prototype = new SuperType(); SubType.prototype.constructor = SubType; }
4. プロトタイプの継承 (寄生型と同様に、参照型の値を共有するために使用されます)
1. 従来のバージョン (最初に object() 関数を定義してから継承します)
function object(o){ function F(){}; F.prototype = o; return new F(); } var SuperType = { name: "Oliver", number: [321,321,4532,1] }; var SubType1 = object(SuperType); var SubType2 = object(SuperType); SubType1.name = "Troy"; SubType1.number.pop(); SubType2.name = "Alice"; SubType2.number.pop(); console.log(SubType1.name + SubType2.name + SubType1.number + SubType2.number + SuperType.name + SuperType.number); //TroyAlice321,321321,321Oliver321,321
ECMAScript バージョン 5 (Object.create() を直接使用して継承)
var SuperType = { name: "Oliver", number: [321,321,4532,1] }; var SubType1 = Object.create(SuperType); //省略了定义object()函数 var SubType2 = Object.create(SuperType); SubType1.name = "Troy"; SubType1.number.pop(); SubType2.name = "Alice"; SubType2.number.pop(); console.log(SubType1.name + SubType2.name + SubType1.number + SubType2.number + SuperType.name + SuperType.number); //TroyAlice321,321321,321Oliver321,321
ECMAScript 5 短縮版 (Object.create() の第 2 パラメータを定義して継承)
var SuperType = { name: "Oliver", number: [321,321,4532,1] }; var SubType1 = Object.create(SuperType,{ name: { value : "Troy" } }); var SubType2 = Object.create(SuperType,{ name: { value : "Alice" } }); SubType1.number.pop(); SubType2.number.pop(); console.log(SubType1.name + SubType2.name + SubType1.number + SubType2.number + SuperType.name + SuperType.number); //TroyAlice321,321321,321Oliver321,321
寄生継承 (プロトタイプと同様、参照型の値を共有するために使用されます)
function createAnother(original){ var clone = Object(original); clone.sayHi = function(){ return "Hi"; }; return clone; } var person = { name: "Oliver", number: [13,21,31,1] }; var anotherPerson = createAnother(person); anotherPerson.number.pop(); console.log(anotherPerson.sayHi() + anotherPerson.number); //Hi13,21,31 console.log(person.number); //13,21,31
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









JS と Baidu Map を使用してマップ パン機能を実装する方法 Baidu Map は広く使用されている地図サービス プラットフォームで、Web 開発で地理情報、位置情報、その他の機能を表示するためによく使用されます。この記事では、JS と Baidu Map API を使用してマップ パン機能を実装する方法と、具体的なコード例を紹介します。 1. 準備 Baidu Map API を使用する前に、Baidu Map Open Platform (http://lbsyun.baidu.com/) で開発者アカウントを申請し、アプリケーションを作成する必要があります。作成完了

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

PHP と JS を使用して株のローソク足チャートを作成する方法。株のローソク足チャートは、株式市場で一般的なテクニカル分析グラフィックです。始値、終値、最高値、株価などのデータを描画することで、投資家が株式をより直観的に理解するのに役立ちます。株価の最低価格、価格変動。この記事では、PHP と JS を使用して株価のローソク足チャートを作成する方法を、具体的なコード例とともに説明します。 1. 準備 開始する前に、次の環境を準備する必要があります。 1. PHP を実行するサーバー 2. HTML5 および Canvas をサポートするブラウザー 3

株式分析に必須のツール: PHP および JS でローソク足チャートを描画する手順を学びます。特定のコード例が必要です。インターネットとテクノロジーの急速な発展に伴い、株式取引は多くの投資家にとって重要な方法の 1 つになりました。株価分析は投資家の意思決定の重要な部分であり、ローソク足チャートはテクニカル分析で広く使用されています。 PHP と JS を使用してローソク足チャートを描画する方法を学ぶと、投資家がより適切な意思決定を行うのに役立つ、より直感的な情報が得られます。ローソク足チャートとは、株価をローソク足の形で表示するテクニカルチャートです。株価を示しています

JS と Baidu Maps を使用してマップ クリック イベント処理を実装する方法の概要: Web 開発では、地理的位置と地理情報を表示するためにマップ関数を使用することが必要になることがよくあります。マップ上のクリック イベント処理は、マップ機能の一般的に使用される重要な部分です。この記事では、JS と Baidu Map API を使用して地図のクリック イベント処理機能を実装する方法と、具体的なコード例を紹介します。手順: Baidu Map の API ファイルをインポートします。まず、Baidu Map API のファイルを HTML ファイルにインポートします。これは、次のコードによって実現できます。

JS と Baidu Maps を使用してマップ ヒート マップ機能を実装する方法 はじめに: インターネットとモバイル デバイスの急速な発展に伴い、マップは一般的なアプリケーション シナリオになりました。視覚的な表示方法として、ヒート マップはデータの分布をより直観的に理解するのに役立ちます。この記事では、JS と Baidu Map API を使用してマップ ヒート マップ機能を実装する方法と、具体的なコード例を紹介します。準備作業: 開始する前に、次の項目を準備する必要があります: Baidu 開発者アカウント、アプリケーションの作成、対応する AP の取得

インターネット金融の急速な発展に伴い、株式投資を選択する人がますます増えています。株式取引では、ローソク足チャートは一般的に使用されるテクニカル分析手法であり、株価の変化傾向を示し、投資家がより正確な意思決定を行うのに役立ちます。この記事では、PHP と JS の開発スキルを紹介し、株価ローソク足チャートの描画方法を読者に理解してもらい、具体的なコード例を示します。 1. 株のローソク足チャートを理解する 株のローソク足チャートの描き方を紹介する前に、まずローソク足チャートとは何かを理解する必要があります。ローソク足チャートは日本人が開発した

JS と Baidu Maps を使用して地図ポリゴン描画機能を実装する方法 現代の Web 開発において、地図アプリケーションは一般的な機能の 1 つになっています。地図上にポリゴンを描画すると、ユーザーが表示および分析できるように特定のエリアをマークするのに役立ちます。この記事では、JS と Baidu Map API を使用して地図ポリゴン描画機能を実装する方法と、具体的なコード例を紹介します。まず、Baidu Map API を導入する必要があります。次のコードを使用して、Baidu Map API の JavaScript を HTML ファイルにインポートできます。
