[英]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.