コードの再利用とその原則
<font face="NSimsun">代码复用</font>
は、その名前が示すように、新しいプログラムを構築するために書かれたコードの一部または全部を再利用することです。コードの再利用について話すとき、最初に思い浮かぶのは <font face="NSimsun">继承性</font>
です。コード再利用の原則は次のとおりです:
<code>优先使用对象组合,而不是类继承</code>
js にはクラスの概念がないため、インスタンスの概念はあまり意味がありません。js のオブジェクトは単純なキーと値のペアであり、動的に作成および変更できます。
しかし、<font face="NSimsun">js</font>
では、コンストラクターと <font face="NSimsun">new</font>
演算子を使用してオブジェクトをインスタンス化できます。これには、クラスを使用する他のプログラミング言語と構文の類似点があります。
例:
<code>var trigkit4 = new Person();</code>
<font face="NSimsun">js</font>
は、コンストラクター <font face="NSimsun">Person</font>
を呼び出すとクラスのように見えますが、実際には関数です。これにより、クラスに基づいて呼び出すことができるいくつかの開発アイデアと継承パターンが得られます。 「クラス継承パターン」。
従来の継承モードには <font face="NSimsun">class</font>
キーワードが必要です。上記のクラス継承モードは、クラスの観点から考慮する必要のないモードである <font face="NSimsun">现代继承模式</font>
であると仮定します。
クラス継承パターン
次の 2 つのコンストラクター <font face="NSimsun">Parent()</font>
と <font face="NSimsun">Child()</font>
の例を見てください。
<code><script type="text/javascript"><br /> function Parent(name){<br /> this.name = name || 'Allen';<br /> }<br /> Parent.prototype.say = function(){<br /> return this.name;<br /> }<br /> function Child(name){}<br /> //用Parent构造函数创建一个对象,并将该对象赋值给Child原型以实现继承<br /> function inherit(C,P){<br /> C.prototype = new P();//原型属性应该指向一个对象,而不是函数<br /> }<br /> //调用声明的继承函数<br /> inherit(Child,Parent);<br /></script></code>
ステートメントを使用してオブジェクトを作成すると、次のようなプロトタイプを介して <font face="NSimsun">new Child()</font>
インスタンスからその機能が取得されます。
<font face="NSimsun">Parent()</font>
<code>var kid = new Child(); kid.say(); //Allen</code>プロトタイプチェーン
クラス継承モデルでプロトタイプ チェーンがどのように機能するかについて説明します。このメモリ ブロックには、データと他のブロックへの参照が含まれるブロックとして考えられます。
ステートメントを使用してオブジェクトを作成すると、下図の左側のようなブロックが作成されます。 メソッドにアクセスする場合は、このブロックに <font face="NSimsun">new Parent()</font>
属性が保存されます。コンストラクター <font face="NSimsun">name</font>
を指す (プロトタイプ) 属性の暗黙リンク <font face="NSimsun">say()</font>
は、右側のブロック <font face="NSimsun">Parent()</font>
にアクセスできます。 <font face="NSimsun">prototype</font>
<font face="NSimsun">__proto__</font>
<font face="NSimsun">Parent.prototype</font>
では、 を使用して新しいオブジェクトを作成するとどうなるでしょうか?以下に示すように:
<font face="NSimsun">var kid = new Child()</font>
ステートメントを使用して作成されたオブジェクトは、暗黙的なリンク
は、<font face="NSimsun">new Child()</font>
関数の <font face="NSimsun">__proto__</font>
ステートメントを使用して作成されたオブジェクト <font face="NSimsun">__proto__</font>
を指します。
<font face="NSimsun">inherit()</font>
<font face="NSimsun">new Parent()</font>
を実行すると、左下のブロック オブジェクトには
メソッドが含まれていました。もう終わりですか? <font face="NSimsun">kid.say()</font>
<font face="NSimsun">say()</font>
は、ここで実行された時点では終了していません。<font face="NSimsun">say()</font>
メソッド内で参照されているのは、<font face="NSimsun">say()</font>
ブロックです。このため、中央のブロックがクエリされ、中央のブロックはたまたま
<font face="NSimsun">say()</font>
より詳細な議論については、私の記事を参照してください: <font face="NSimsun">this.name</font>
JavaScript 学習ノート (5) プロトタイプとプロトタイプ チェーンの詳細な説明<font face="NSimsun">new Child()</font>
<font face="NSimsun">new Child()</font>
<font face="NSimsun">name</font>
<font face="NSimsun">name</font>
プロトタイプを共有

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
