javascriptのtoString関数をオーバーライドします

VanasisB

こんにちはimデフォルトの数値ラッパーtoString関数をオーバーライドしようとしています

(function() {
  let _toString = Number.prototype.toString;
  Number.prototype.toString = function() {
    console.log("Number ToString Called");
    _toString();
  };
})();

let b = new Number(5);
console.log(b);
document.writeln(typeof b);
document.writeln(b.toString());

上記のコードを使用しましたが、console.log()の後に元のメソッドを呼び出そうとするとエラーが発生します

Uncaught TypeError:Number.prototype.toStringでは、「this」がNumber.toStringのtoString()の数値である必要があります。

事前にjavascriptのおかげでこれを行う方法を探しています

バーマー

toStringはメソッドであり、変換するオブジェクトをthisコンテキストとして受け取ります。それを元の関数に渡す必要があります。

Number.prototype.toString()オプションのradix引数を取ることができます。あなたもそれを伝えるべきです。

thisを使用して、特定のコンテキストと引数を使用して関数を呼び出すことができますFunction.prototype.apply

また、元の関数によって返された値を返す必要があります。

(function() {
  let _toString = Number.prototype.toString;
  Number.prototype.toString = function(...args) {
    console.log("Number ToString Called");
    return _toString.apply(this, args);
  };
})();

let b = new Number(20);
console.log(b);
document.writeln(typeof b);
document.writeln(b.toString());
document.writeln(b.toString(8));

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Javascript関数をオーバーライドしますか?

分類Dev

asp.netのjavascript関数をオーバーライドします

分類Dev

ViewModelのList.ToString()をオーバーライドします

分類Dev

ViewModelのList.ToString()をオーバーライドします

分類Dev

JavaScriptのtoString()関数をオーバーライドして、デバッグに意味のある出力を提供することは可能ですか?

分類Dev

現在の関数本体をオーバーライドせずにJavaScript関数を拡張します

分類Dev

2複数のクラス間でToString()メソッドをオーバーライドします

分類Dev

OdooのJavaScript関数をオーバーライドする

分類Dev

内部オブジェクトのtoStringをオーバーライドします

分類Dev

Javascriptのonclick関数はifステートメントをオーバーライドしますか?

分類Dev

Promiseとして関数の配列をオーバーライドします

分類Dev

require関数をオーバーライドします

分類Dev

AngularJsはtemplateUrl関数をオーバーライドします

分類Dev

JavaScriptで関数をオーバーライドする方法は?casperjsはその後機能します

分類Dev

ノードエクスポートで関数のtoString()をオーバーライドする

分類Dev

Javascriptクラスの関数をオーバーライドし、基本関数を呼び出す方法

分類Dev

Swift-UIViewControllerとUITableViewControllerの関数をオーバーライドします

分類Dev

Kotlinの列挙型toString()をオーバーライドしますか?

分類Dev

JavaScript関数オブジェクトをオーバーライドしてすべての関数呼び出しをログに記録できますか?

分類Dev

関数は基本関数をオーバーライドしますか?

分類Dev

デコレータから関数のサブ関数をオーバーライドしますか?

分類Dev

関数をオーバーライドすると、複数の定義エラーが発生します

分類Dev

別のライブラリからの関数の戻り値をオーバーライドします

分類Dev

const関数をオーバーライドしてC ++のクラス変数を変更しますか?

分類Dev

FirefoxアドオンSDKを使用してWebページのJavaScript関数をオーバーライドします

分類Dev

トレイト内のオブジェクト内の関数をオーバーライドします

分類Dev

firebase deploy --only関数は既存の関数をオーバーライドします

分類Dev

firebase deploy --only関数は既存の関数をオーバーライドします

分類Dev

Spring 4 + Hibernate + ThymeleafのフィールドのtoStringメソッドをオーバーライドします

Related 関連記事

  1. 1

    Javascript関数をオーバーライドしますか?

  2. 2

    asp.netのjavascript関数をオーバーライドします

  3. 3

    ViewModelのList.ToString()をオーバーライドします

  4. 4

    ViewModelのList.ToString()をオーバーライドします

  5. 5

    JavaScriptのtoString()関数をオーバーライドして、デバッグに意味のある出力を提供することは可能ですか?

  6. 6

    現在の関数本体をオーバーライドせずにJavaScript関数を拡張します

  7. 7

    2複数のクラス間でToString()メソッドをオーバーライドします

  8. 8

    OdooのJavaScript関数をオーバーライドする

  9. 9

    内部オブジェクトのtoStringをオーバーライドします

  10. 10

    Javascriptのonclick関数はifステートメントをオーバーライドしますか?

  11. 11

    Promiseとして関数の配列をオーバーライドします

  12. 12

    require関数をオーバーライドします

  13. 13

    AngularJsはtemplateUrl関数をオーバーライドします

  14. 14

    JavaScriptで関数をオーバーライドする方法は?casperjsはその後機能します

  15. 15

    ノードエクスポートで関数のtoString()をオーバーライドする

  16. 16

    Javascriptクラスの関数をオーバーライドし、基本関数を呼び出す方法

  17. 17

    Swift-UIViewControllerとUITableViewControllerの関数をオーバーライドします

  18. 18

    Kotlinの列挙型toString()をオーバーライドしますか?

  19. 19

    JavaScript関数オブジェクトをオーバーライドしてすべての関数呼び出しをログに記録できますか?

  20. 20

    関数は基本関数をオーバーライドしますか?

  21. 21

    デコレータから関数のサブ関数をオーバーライドしますか?

  22. 22

    関数をオーバーライドすると、複数の定義エラーが発生します

  23. 23

    別のライブラリからの関数の戻り値をオーバーライドします

  24. 24

    const関数をオーバーライドしてC ++のクラス変数を変更しますか?

  25. 25

    FirefoxアドオンSDKを使用してWebページのJavaScript関数をオーバーライドします

  26. 26

    トレイト内のオブジェクト内の関数をオーバーライドします

  27. 27

    firebase deploy --only関数は既存の関数をオーバーライドします

  28. 28

    firebase deploy --only関数は既存の関数をオーバーライドします

  29. 29

    Spring 4 + Hibernate + ThymeleafのフィールドのtoStringメソッドをオーバーライドします

ホットタグ

アーカイブ