2017-10-22 14 views
0

は私がのlocalStorageから件のデータを持つ要素を作成する方法のLOADSETを持っており、これは私が)(オブジェクトインスタンスなしでオブジェクトメソッドを呼び出す方法は?

ReminderSet.prototype.loadSetを経由して、それを呼び出していますページの読み込み時に実行する必要があります。 //うまく動作します

私の質問は、オブジェクトインスタンスへの参照を必要としないメソッドを呼び出す方法はありますか? person1.loadSet();のように、または私はこれを放棄して、それを通常の関数として作るべきですか?

ReminderSet.prototype.loadSet = function() { 
    var keys = Object.keys(localStorage), 
     i = 0, 
     key, 
     array; 

    for (; key = keys[i]; i++) { 
     const setId = localStorage.getItem(key); 
     array = JSON.parse(setId); //parse and store key values 
     let array_index = 0; 
     //Re-create the reminders and set their properties// 
     $reminderSection.append($('<div/>').addClass('set').attr('id', key) //Set the ID      
      .append($('<div/>').addClass('set-title').append($('<h1>').attr('contenteditable', 'true').text(array[array_index].set_title)), //Index is always at 0// 
       $('<div/>').addClass('create-reminder-control').append($('<button>').addClass('add-new-reminder').text("+ add new"), $('<input>').addClass('create-reminder-value').attr({ type: "text", placeholder: "get something done" })), $('<div/>').addClass('reminder-lists'), $('<div/>').addClass('save-control').append($('<button>').addClass('save-reminder-button').text('Save')))) 

     //Get our key values // 
     for (; array_index < array.length; array_index++) { 
      /*Select the element id */ 
      $("#" + key).children('.reminder-lists').append($('<div/>').addClass('a-reminder').attr('contenteditable', 'true').text(array[array_index].description).append($('<div/>').addClass('delete-reminder').text('x'))) //Get the reminders 
     } //end 

    } 
}; 
+1

インスタンスなしで呼び出す必要がある場合は、おそらくインスタンスメソッドであってはなりません。プロトタイプではなくオブジェクト上で直接定義します。これは基本的には「静的」な機能です。 –

答えて

2

loadSetがインスタンスを必要とするか、または使用しない場合は、それがReminderSet.prototypeにあることは意味をなさない。それスタンドアロン機能します次のいずれかの

ReminderSet自体に
function loadSet() { 
    // ... 
} 
// Call it like so: loadSet(); 

...またはプロパティ:

ReminderSet.loadSet = function() { 
    // ... 
}; 
// Call it like so: ReminderSet.loadSet(); 

のみ、彼らはthisを使用する必要がある場合は、コンストラクタのprototypeプロパティが参照するオブジェクトの機能を置きます(インスタンス)。

1

あなたは他のReminderSetのプロパティとして直接機能を設定することができます。

ReminderSet.loadSet = function() {//etc.} 

その後、あなたは、単に呼び出すことができます。ReminderSet.loadSet()

関連する問題