簡體   English   中英

獲取對實例方法內部的實例屬性的訪問

[英]Get access to instance attributes inside of instance method

我正在嘗試擴展對象並向其添加一些自定義實例方法。 如何訪問屬性中的數據?

const Media = Parse.Object.extend('Media', {
  getUrl: function getUrl() {
    // HOW DO I ACCESS ATTRIBUTES HERE?
  },
});

const url = new Media({
  url: 'url here',
}).getUrl()

我基本上希望屬性值可以存在於this或this.get('url')中

那么,如何獲得實例方法內部的屬性?

謝謝

代碼的問題在於,您試圖使用不會初始化實例的構造函數。

const url = new Media({
  url: 'url here',
});

在這里,您要將具有url屬性的state object傳遞給Media構造函數,但實際上並沒有捕獲該對象來初始化實例,因此該對象將被忽略。 因此,實例上的名稱url沒有屬性,並且this.url將是undefined

如此處所述Parse.Object.extend()將為給定的類名返回Parse.Object的子類。 extend()的第二個參數是一個對象,其中包含實例屬性/方法,所有實例都可以使用。 一旦定義了類,就可以使用new關鍵字創建一個新實例。 如果在創建實例時有多個要初始化的參數,則可以使用如下的initialize方法。

const Media = Parse.Object.extend('Media', {
  initialize : function(state){
     this.url = state.url;
     this.type = state.type;
  },
  getUrl: function getUrl() {
    return this.url;
  },
  getType : function(){
    return this.type;
  }
});

然后通過調用構造函數new關鍵字並傳遞狀態對象(如下所示)來創建實例

const url = new Media({
  'url' : 'myURL',
  'type' : 'video'
});

url.getType(); // returns 'video'
url.getUrl(); // returns 'myURL'

原來,我嘗試對嵌套對象執行getUrl()方法,但是我沒有在查詢中包含該對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM