Javascriptプロトタイプで「this」を使用しないようにする方法

user14742

これが私のjavascriptオブジェクトです。プロトタイプで「this」を何度も使用しないようにする方法を知りたいです。プロトタイプの継承には多くの理論とリンクがあることを私は知っており、これはおそらくすでに答えられていますが、私はすべての目的を達成することができなかったので、これは別の質問の価値があるかもしれないと思いました。

function shape(smth) {
    this.a = smth
    this.b = 2
    this.c = 3
}

shape.prototype.doCalculus = function () {
    return this.a * this.b + this.c - (2 * (this.b + this.c) + this.a);
}

module.exports = shape
jfriend00

オブジェクトのパブリックメンバーが必要な場合は、thisポインターから参照する必要があります。これが、JavascriptでOOが機能する方法です。代替手段はありません。

関数内に同じ変数への参照がたくさんある場合は、参照ロジックを保存するためだけに一時的にローカル変数に入れることができます(複数ステップの参照と同じ)が、最初はを使用して取得する必要がありますthis.varName


コンストラクタークロージャで「プライベート」メンバー変数を使用し、一部の状況で使用できるプロトタイプを使用しないスキームがあります。これにより、次を使用せずに変数を直接参照できますthis

function shape(smth) {
    var a = smth,
        b = 2,
        c = 3;

    this.doCalculus = function() {
        return a * b + c - (2 * (b + c) + a);
    }
}

module.exports = shape

多数のインスタンスを作成するオブジェクトタイプの場合、メソッドは共有プロトタイプに保存されないため、メモリを少し消費する可能性がありますが、インスタンスごとに個別に作成されます。ほとんどの用途で、メモリ消費量の違いは重要ではないと主張する人がいます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

matplotlibを使用して、whileループでリアルタイムにプロットするにはどうすればよいですか?

分類Dev

C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

分類Dev

C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

分類Dev

C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

分類Dev

プロトタイプセルにUIImageViewを使用してUITableViewに視差効果を作成するにはどうすればよいですか?

分類Dev

プロトタイプのないオブジェクトからデフォルトのプロトタイプを使用してJSオブジェクトを作成するにはどうすればよいですか?

分類Dev

ワンタップサインインフローでJavaScript用のGoogleAPIクライアントを使用するにはどうすればよいですか?

分類Dev

JavaScriptでプロキシを使用して、プロトタイプチェーンを維持しながらコンストラクターをキャプチャするにはどうすればよいですか?

分類Dev

JavaScriptでJSON解析オブジェクトのプロトタイプを少なくするにはどうすればよいですか?

分類Dev

ES6のプロパティの省略形を使用してオブジェクトをtypescriptで渡し、引数の前にインターフェイス名を付けないようにする簡単な方法は?

分類Dev

GTK3アプリケーションでグローバルポインター変数を使用しないようにする方法

分類Dev

Javascriptを使用してドロップダウンにタイムリストを表示するにはどうすればよいですか?

分類Dev

スタイルガイド:大きなプロジェクトで混乱しないようにする方法

分類Dev

再帰コンポーネントで「プロップを直接変更しないようにする」方法

分類Dev

Popoverのようなmeterial-uiコンポーネントでrefタイプの小道具を使用するにはどうすればよいですか?'action' = updatePosition()propの使用方法を理解しようとしています

分類Dev

RadioGroupボタンを使用してプロットタイプを更新するにはどうすればよいですか?

分類Dev

同じスタイル内のセッターを使用して、スタイル付きコントロール内の同じタイプの要素を異なる方法で変更するにはどうすればよいですか?

分類Dev

不変の場合にプロトタイプを使用して、文字列にメソッドを追加するにはどうすればよいですか?

分類Dev

Json.NETがEntityFrameworkプロキシタイプ名を使用しないようにするにはどうすればよいですか?

分類Dev

コンストラクターパラメーターをプロトタイプ関数JavaScriptで使用できるようにする方法

分類Dev

JQueryプラグインでブログ投稿をターゲットにしないようにするにはどうすればよいですか?

分類Dev

プロトタイプセルが機能していないときにセグエを使用する方法

分類Dev

ImageMagick変換を再現可能な方法で(タイムスタンプなしで)使用するにはどうすればよいですか?

分類Dev

クラス変数がインスタンス化の間に持続しないようにJavascriptプロトタイプを適切に作成するにはどうすればよいですか?

分類Dev

`requires`を使用してクラスのプロトタイプをリセットするにはどうすればよいですか?

分類Dev

zshがCWDでエイリアスを使用しないようにする(プロンプト)

分類Dev

プロトタイプを使用して太い矢印関数を更新するにはどうすればよいですか?

分類Dev

プロトコルなしで入力タイプのURLにjQuery検証を使用するにはどうすればよいですか?

分類Dev

プロトコルを使用して UITableView に複数の UITableViewCell プロトタイプを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    matplotlibを使用して、whileループでリアルタイムにプロットするにはどうすればよいですか?

  2. 2

    C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

  3. 3

    C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

  4. 4

    C#7で、非同期で使用する「自分のロール」のタスクのようなタイプをどのようにしたらよいですか?

  5. 5

    プロトタイプセルにUIImageViewを使用してUITableViewに視差効果を作成するにはどうすればよいですか?

  6. 6

    プロトタイプのないオブジェクトからデフォルトのプロトタイプを使用してJSオブジェクトを作成するにはどうすればよいですか?

  7. 7

    ワンタップサインインフローでJavaScript用のGoogleAPIクライアントを使用するにはどうすればよいですか?

  8. 8

    JavaScriptでプロキシを使用して、プロトタイプチェーンを維持しながらコンストラクターをキャプチャするにはどうすればよいですか?

  9. 9

    JavaScriptでJSON解析オブジェクトのプロトタイプを少なくするにはどうすればよいですか?

  10. 10

    ES6のプロパティの省略形を使用してオブジェクトをtypescriptで渡し、引数の前にインターフェイス名を付けないようにする簡単な方法は?

  11. 11

    GTK3アプリケーションでグローバルポインター変数を使用しないようにする方法

  12. 12

    Javascriptを使用してドロップダウンにタイムリストを表示するにはどうすればよいですか?

  13. 13

    スタイルガイド:大きなプロジェクトで混乱しないようにする方法

  14. 14

    再帰コンポーネントで「プロップを直接変更しないようにする」方法

  15. 15

    Popoverのようなmeterial-uiコンポーネントでrefタイプの小道具を使用するにはどうすればよいですか?'action' = updatePosition()propの使用方法を理解しようとしています

  16. 16

    RadioGroupボタンを使用してプロットタイプを更新するにはどうすればよいですか?

  17. 17

    同じスタイル内のセッターを使用して、スタイル付きコントロール内の同じタイプの要素を異なる方法で変更するにはどうすればよいですか?

  18. 18

    不変の場合にプロトタイプを使用して、文字列にメソッドを追加するにはどうすればよいですか?

  19. 19

    Json.NETがEntityFrameworkプロキシタイプ名を使用しないようにするにはどうすればよいですか?

  20. 20

    コンストラクターパラメーターをプロトタイプ関数JavaScriptで使用できるようにする方法

  21. 21

    JQueryプラグインでブログ投稿をターゲットにしないようにするにはどうすればよいですか?

  22. 22

    プロトタイプセルが機能していないときにセグエを使用する方法

  23. 23

    ImageMagick変換を再現可能な方法で(タイムスタンプなしで)使用するにはどうすればよいですか?

  24. 24

    クラス変数がインスタンス化の間に持続しないようにJavascriptプロトタイプを適切に作成するにはどうすればよいですか?

  25. 25

    `requires`を使用してクラスのプロトタイプをリセットするにはどうすればよいですか?

  26. 26

    zshがCWDでエイリアスを使用しないようにする(プロンプト)

  27. 27

    プロトタイプを使用して太い矢印関数を更新するにはどうすればよいですか?

  28. 28

    プロトコルなしで入力タイプのURLにjQuery検証を使用するにはどうすればよいですか?

  29. 29

    プロトコルを使用して UITableView に複数の UITableViewCell プロトタイプを作成するにはどうすればよいですか?

ホットタグ

アーカイブ