JavaScript オブジェクト指向 -- メソッド
JavaScript のオブジェクト指向は近年人気の概念ですが、私の知識が限られているため、多くの Web プロジェクトを実行し、インターネット上で難解な資料やチュートリアルをたくさん読みましたが、その難解な内容についてはまだ少し理解しています。少し前に読んだこの本について、ようやく自分なりの理解ができたので、今日はそれを披露します。間違っていると思うなら、直接批判してください。自分。
まず、以下のことを簡単に理解しましょう。
関数 fn(){} や var fn=function(){} などを JS コードで書くと、配列はもちろんオブジェクトとしても理解できます。
オブジェクト指向を理解する前に、まず次のことを理解しましょう。
1. オブジェクトのメソッドの呼び出し
jsの最外層に書かれた関数は、windowオブジェクトのメソッドとしても理解できます。定義された変数は、ウィンドウ オブジェクトのプロパティと呼ぶこともできます。例:
var test=function(){ alert("123") } 当然上面的你也可以这样定义 function test(){ alert("123") }
window オブジェクトのメソッドとして、次のように呼び出すことができます
test()//警告ボックス 123 をポップアップします (window オブジェクトはトップレベルのオブジェクトであるため、省略できます)
window.test()//警告ボックス 123 をポップアップします
window['test']()//警告ボックス 123 をポップアップします。Test は、window 配列オブジェクトの下のメソッド値として理解できます。
上記の例を通じて、オブジェクトのメソッドの使用方法と呼び出し方法を大まかに理解できます。
2. プライベート メソッド
プライベート メソッドは、オブジェクトの内部スコープ内でのみ使用できるメソッドです。これは変数のスコープの観点から理解できます。
上記の例の関数は、window オブジェクトのプライベート メソッドとして理解できます。以下の例を続けてください。
var pet=function(){ function showpet(){ alert("123") } showpet();//私有方法可以在函数作用域范围内使用。 var temp="私有变量只有在函数或者对象作用域范围内能访问" } showpet();//会出错 pet.showpet()//还是不能这样调用 var Penguin=new pet() //实例化一个pet对象 Penguin.showpet()//不好意思这样子还是不能让你调用。
定義したいメソッドがオブジェクトのスコープ外で呼び出せる場合はどうすればよいですか?プライベート メソッドを使用するにはどうすればよいですか?次の部分を見てみましょう。
3. 静的メソッド
上記の質問を踏まえて、上記の例を続けてみましょう。
var pet=function(){ function showpet(){//私有方法 alert("123") } showpet();//私有方法可以在函数作用域范围内使用。 } pet.show=function(){//给pet对象添加一个静态方法。 alert("456") } pet.name="Penguin"//给pet对象添加一个静态属性。 pet.show()//弹出警告框456 alert(pet.name)//弹出警告框Penguin //继续思维碰撞 ===================== var Penguin=new pet() //实例化一个pet对象 Penguin.show()//不好意思,这个静态方法好像没有被实例继承。有这种思路值得表扬啊,加油!
もちろん、あなたは静的メソッドが何であるかを示しています。実際、私も初心者なので、理解できません。オブジェクトの静的メソッドの書き方とそれを呼び出す方法を知っているでしょう。いつか、あなたは突然理解し、私に教えに来るでしょう。上記の質問を踏まえて、インスタンス化されたオブジェクトによって呼び出すことができるメソッドを見てみましょう。
4. パブリック メソッド
パブリック メソッドは、通常、オブジェクトのプロトタイプを変更すると、そのプロトタイプの変更を継承します (この文は非常に大げさです)。漠然とした感じなので無視してください)。
オブジェクトのプロトタイプ メソッドを変更するには、上記の例を続けます。
pet.prototype.setname=function(str){//通过修改原型添加一个公有方法,用于添加修改实例对象的name name=str; }
例を見てください:
var pet=function(){ function showname(){//私有方法 alert(this.name) } this.show=function(){ //如果这里不理解,请注意这个方法下面就要介绍了。 showname(); } } pet.prototype.setname=function(str){ name=str; } var Penguin=new pet() Penguin.setname("Penguin");//添加实例的name值为Penguin Penguin.show(); //弹出Penguin Penguin.setname("wind");//添加实例的name值为wind Penguin.show(); //弹出wind
コードを実行して試してみましょう。
<script> var pet=function(){ name:"123", function showname(){//私有方法 alert(this.name) } this.show=function(){ showname(); } } pet.prototype.setname=function(str){ name=str; } var Penguin=new pet() Penguin.setname("Penguin"); Penguin.show(); Penguin.setname("wind"); Penguin.show(); </script>
5. 特権メソッド (オブジェクトまたは関数の外部インターフェイス)
実際、このメソッドは上記の例ですでに使用されています。このメソッドは、インスタンス化されたオブジェクトの継承によって呼び出すことができます。コンストラクター内の thsi キーワードを介してメソッドを定義します。特権メソッドはコンストラクターの外部でパブリックにアクセスでき (インスタンス化されたオブジェクトに限定されます)、プライベート メンバーやメソッドにもアクセスできるため、特権関数を通じてプライベート メソッドへのパブリック メソッド アクセスを制御できます。 JS フレームワーク拡張機能には多くのアプリケーションがあります。
読者は、上記が P の段落であると考えることができます。特権メソッドを定義する方法、特権メソッドを参照する方法を見て、引き続き上記の例を呼び出して見てみましょう。
var pet=function(){ function showname(){//私有方法 alert(this.name) } this.show=function(){//通过使用this关键字定义一个特权方法。 showname(); //在特权方法中访问私有方法; } } pet.prototype.setname=function(str){ name=str; } var Penguin=new pet();//实例化一个pet对象 Penguin.setname("Penguin");//调用公有方法修改 Penguin.show(); //调用特权方法访问私有方法,弹出name
まず、コンストラクターで this.fn=function(){} を使用して特権メソッドを作成します。特権関数でプライベート メソッドにアクセスする
インスタンス化されたオブジェクトは、特権関数にアクセスすることによって、いくつかのプライベート メソッドを使用できます。特権関数にアクセスする方法は、パブリック関数にアクセスする場合と同じです。
最初のパートはここまでです。次のパートでは、例を使用してオブジェクト指向がどのようにインストールされるかを説明します。
以上がこの記事の全内容です。興味のある方は「JavaScript オブジェクト指向 - カプセル化」を読んでみてください。PHP 中国語 Web サイトをよろしくお願いします。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull
