パラメータ化された関数内でオブジェクトプロパティを使用するにはどうすればよいですか?

dmpyed

私はプロジェクトのダイアログに取り組んでいて、それをオブジェクトコンストラクターにしました。

function createDialog(title, noClicked = function(){}, yesClicked = function(){}) {
  this.dialog = document.getElementsByClassName("dialog")[0];
  this.dialogTitle = this.dialog.getElementsByTagName("h1")[0];
  this.No = this.dialog.getElementsByTagName("button")[0];
  this.Yes = this.dialog.getElementsByTagName("button")[1];

  var dialog = document.getElementsByClassName("dialog")[0];
  this.dialogTitle.innerHTML = title;
  document.getElementsByClassName("dialogCon")[0].style.display = "flex";

  noClicked();

  yesClicked();
}
<div class="dialogCon">
      <div class="dialog">
        <h1></h1>
        <button type="button">No</button>
        <button type="button">Yes</button>
      </div>
    </div>

問題は、「this.no」または「this.yes」にアクセスしたいときに、undefinedのプロパティ「No」を読み取れなくなることです。これは、次のコードを使用したときに発生しました。

var d = new createDialog("Sample dialog. Exit?", function() {
  console.log(d.No);
}, function() {
  console.log(d.Yes);
});

ダイアログを閉じるには、d.Noを使用する必要があります。それを行う他の方法はありますか?または少なくとも修正。
コンストラクター自体の中からダイアログを閉じることができるという事実を知っていますが、他のこともできるようにしたいと思います(ユーザーがyesを選択したかnoを選択したかを検出するなど)。

前もって感謝します
gkulshrestha

コンストラクター内でnoClicked()yesClicked()をすぐに呼び出しています。いいえ」「はい」をクリックすると、電話をかけたいと思いますこれらの関数をボタンのイベントリスナーに追加する必要があります。以下のスニペットをお試しください。

function createDialog(title, noClicked = function(){}, yesClicked = function(){}) {
  this.dialog = document.getElementsByClassName("dialog")[0];
  this.dialogTitle = this.dialog.getElementsByTagName("h1")[0];
  this.No = this.dialog.getElementsByTagName("button")[0];
  this.Yes = this.dialog.getElementsByTagName("button")[1];

  var dialog = document.getElementsByClassName("dialog")[0];
  this.dialogTitle.innerHTML = title;
  document.getElementsByClassName("dialogCon")[0].style.display = "flex";
  this.No.addEventListener('click',noClicked);
  this.Yes.addEventListener('click',yesClicked);
}
  

 var d = new createDialog("Sample dialog. Exit?", function() {
               console.log(d.No);
            }, function() {
               console.log(d.Yes);
           });
<div class="dialogCon">
      <div class="dialog">
        <h1></h1>
        <button type="button">No</button>
        <button type="button">Yes</button>
      </div>
    </div>

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

コンストラクター内の関数からオブジェクトプロパティを返すにはどうすればよいですか?

分類Dev

オブジェクト内のネストされたプロパティのキーパスを取得するにはどうすればよいですか?

分類Dev

関数を呼び出すjavascriptオブジェクト内でこのパラメーターを使用するにはどうすればよいですか?

分類Dev

ブラウザから返されたオブジェクトをグローバルに利用できるようにしてから、関数をプロパティとして設定するにはどうすればよいですか?

分類Dev

関数で定義されているオブジェクトにプロパティを追加するにはどうすればよいですか?

分類Dev

Classオブジェクトをパラメーター化された型として使用するにはどうすればよいですか?

分類Dev

パラメータで渡された関数を使用して、指定された必須フィールドをフォーマットする複雑なオブジェクトを処理するにはどうすればよいですか?

分類Dev

配列内のプロパティでネストされたオブジェクトをクエリするにはどうすればよいですか?

分類Dev

配列内でプッシュされたオブジェクトのプロパティを設定するにはどうすればよいですか?

分類Dev

関数内でオブジェクトのプロパティ値を設定するにはどうすればよいですか?

分類Dev

オブジェクトを関数に渡すときに、テンプレート化されたコンストラクターがクラスをパラメーターとして受け取らないようにするにはどうすればよいですか?

分類Dev

ネストされたプロパティでオブジェクトスプレッドを使用するにはどうすればよいですか?

分類Dev

オブジェクト内に移動されたプロパティの参照を更新するにはどうすればよいですか?

分類Dev

C ++でパラメーター化されたオブジェクトの配列を作成するにはどうすればよいですか?

分類Dev

パラメータが基本型として宣言されている場合、継承されたオブジェクトのプロパティを取得するにはどうすればよいですか?

分類Dev

いくつかのプロセスで動的パラメータ内にオブジェクトを作成するにはどうすればよいですか?

分類Dev

スタイルタグ内のプロパティと値を文字列ではなくオブジェクトの形式で記述できるように、createElement関数をアップグレードするにはどうすればよいですか?

分類Dev

JavaScript:addEventListener関数内のパラメーターとして親オブジェクトを設定するにはどうすればよいですか?

分類Dev

関数のパラメータを使用してオブジェクトのデータを使用するにはどうすればよいですか?

分類Dev

取得したオブジェクトのプロパティをプロパティシートに表示するにはどうすればよいですか?

分類Dev

Ruby on Rails:JSONPathを使用して、JSON配列内のネストされたオブジェクト/プロパティにアクセス(およびデータベースに保存)するにはどうすればよいですか?

分類Dev

マングースから返されたオブジェクトからプロパティを削除するにはどうすればよいですか

分類Dev

Vueで計算されたプロパティのパラメーターで関数を再利用するにはどうすればよいですか?

分類Dev

オブジェクトに保存されたプロパティがあるかどうかを確認するにはどうすればよいですか?

分類Dev

RAIIプロパティを使用してサブスクライバーオブジェクトを作成するにはどうすればよいですか?

分類Dev

C#ジェネリックハンドラーでjavascriptから受け取った逆シリアル化されたオブジェクトプロパティを参照するにはどうすればよいですか?

分類Dev

オブジェクトのプロパティまたは関数呼び出しに特定の値を返すにはどうすればよいですか?

分類Dev

オブジェクトを返す関数からプロパティの値を取得するにはどうすればよいですか?

分類Dev

Underscorejs:ネストされたオブジェクトをプロパティで削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    コンストラクター内の関数からオブジェクトプロパティを返すにはどうすればよいですか?

  2. 2

    オブジェクト内のネストされたプロパティのキーパスを取得するにはどうすればよいですか?

  3. 3

    関数を呼び出すjavascriptオブジェクト内でこのパラメーターを使用するにはどうすればよいですか?

  4. 4

    ブラウザから返されたオブジェクトをグローバルに利用できるようにしてから、関数をプロパティとして設定するにはどうすればよいですか?

  5. 5

    関数で定義されているオブジェクトにプロパティを追加するにはどうすればよいですか?

  6. 6

    Classオブジェクトをパラメーター化された型として使用するにはどうすればよいですか?

  7. 7

    パラメータで渡された関数を使用して、指定された必須フィールドをフォーマットする複雑なオブジェクトを処理するにはどうすればよいですか?

  8. 8

    配列内のプロパティでネストされたオブジェクトをクエリするにはどうすればよいですか?

  9. 9

    配列内でプッシュされたオブジェクトのプロパティを設定するにはどうすればよいですか?

  10. 10

    関数内でオブジェクトのプロパティ値を設定するにはどうすればよいですか?

  11. 11

    オブジェクトを関数に渡すときに、テンプレート化されたコンストラクターがクラスをパラメーターとして受け取らないようにするにはどうすればよいですか?

  12. 12

    ネストされたプロパティでオブジェクトスプレッドを使用するにはどうすればよいですか?

  13. 13

    オブジェクト内に移動されたプロパティの参照を更新するにはどうすればよいですか?

  14. 14

    C ++でパラメーター化されたオブジェクトの配列を作成するにはどうすればよいですか?

  15. 15

    パラメータが基本型として宣言されている場合、継承されたオブジェクトのプロパティを取得するにはどうすればよいですか?

  16. 16

    いくつかのプロセスで動的パラメータ内にオブジェクトを作成するにはどうすればよいですか?

  17. 17

    スタイルタグ内のプロパティと値を文字列ではなくオブジェクトの形式で記述できるように、createElement関数をアップグレードするにはどうすればよいですか?

  18. 18

    JavaScript:addEventListener関数内のパラメーターとして親オブジェクトを設定するにはどうすればよいですか?

  19. 19

    関数のパラメータを使用してオブジェクトのデータを使用するにはどうすればよいですか?

  20. 20

    取得したオブジェクトのプロパティをプロパティシートに表示するにはどうすればよいですか?

  21. 21

    Ruby on Rails:JSONPathを使用して、JSON配列内のネストされたオブジェクト/プロパティにアクセス(およびデータベースに保存)するにはどうすればよいですか?

  22. 22

    マングースから返されたオブジェクトからプロパティを削除するにはどうすればよいですか

  23. 23

    Vueで計算されたプロパティのパラメーターで関数を再利用するにはどうすればよいですか?

  24. 24

    オブジェクトに保存されたプロパティがあるかどうかを確認するにはどうすればよいですか?

  25. 25

    RAIIプロパティを使用してサブスクライバーオブジェクトを作成するにはどうすればよいですか?

  26. 26

    C#ジェネリックハンドラーでjavascriptから受け取った逆シリアル化されたオブジェクトプロパティを参照するにはどうすればよいですか?

  27. 27

    オブジェクトのプロパティまたは関数呼び出しに特定の値を返すにはどうすればよいですか?

  28. 28

    オブジェクトを返す関数からプロパティの値を取得するにはどうすればよいですか?

  29. 29

    Underscorejs:ネストされたオブジェクトをプロパティで削除するにはどうすればよいですか?

ホットタグ

アーカイブ