Javascript は厳密なオブジェクト指向言語ではなく、オブジェクト駆動型およびイベント駆動型プログラミングに基づくクライアント側のスクリプト言語です。理由: オブジェクト指向には、カプセル化、継承、ポリモーフィズムという 3 つの主要な機能が含まれていますが、JavaScript にはカプセル化のみがあり、継承は継承をシミュレートするだけであり、オブジェクト指向ではありません。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
Javascript は厳密なオブジェクト指向言語ではなく、オブジェクト駆動プログラミングに基づくクライアント側スクリプト言語であり、オブジェクトを作成するだけでなく、既存のオブジェクトを使用することもできます。
なぜ JavaScript はオブジェクト指向言語ではないのですか?
オブジェクト指向には、カプセル化、継承、ポリモーフィズムという 3 つの大きな特徴があるからです。 JavaScript にはカプセル化のみがあり、継承はシミュレートされた継承のみであり、オブジェクト指向ではありません。
つまり、JavaScript ではすべてがオブジェクトであり、プロパティ、配列、関数などはすべてオブジェクトです。
JavaScript にはオーバーロードはありません
JavaScript にはオーバーロードはありません。同じ関数後で定義された名前は前の関数を上書きし、常に最後の関数のみを呼び出します。JS の仮パラメータは単なるプレースホルダーです。2 つの仮パラメータを定義する場合、プログラマが実際のパラメータを渡しやすくするためだけに、渡すことができるパラメータは 1 つだけです。 。
仮パラメータが記述されていない場合、実パラメータをプレースホルダとして便利に使用することはできません。この場合、暗黙の仮パラメータarguments[0]は、最初の実パラメータとarguments[1]にアクセスするために使用されます。 2 番目の実パラメータへのアクセスなどに使用されます。
関数を使用してクラスをシミュレートする
通常、クラス名の最初の文字は大文字で始まります。クラスの定義、2. メソッド の属性値は関数です。
例:
オブジェクト クラスを使用してインスタント オブジェクトを作成する
delete stu.name;//可以删除属性
例:
シミュレーションの継承
1. call() 関数を使用して継承をシミュレートします
2. apply() 関数を使用して継承をシミュレートします
3. プロトタイプを使用する プロトタイプは継承をシミュレートします
クラスのプロトタイプ属性を通じて、クラスがどのような属性とメソッドを持っているかを知ることができます。
//1.创建父类对象 var person = new Person(); //2.子类.prototype = 父类对象 Student.prototype = person ; //把父类的原型赋值给子类对象的原型,原型一致,模拟实现了继承。
【関連する推奨事項:JavaScript 学習チュートリアル】
以上がJavaScriptはオブジェクト指向ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。