javascript - 访问实例方法内部的实例属性

标签 javascript parse-platform

我正在尝试扩展一个对象并向其添加一些自定义实例方法。如何访问属性中的数据?

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 对象 传递给 Media 构造函数,但实际上并未捕获该对象来初始化您的实例,因此该对象被简单地忽略。因此,您的实例上不存在名为 url 的属性,并且 this.url 将为 未定义

据记录hereParse.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'

关于javascript - 访问实例方法内部的实例属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32942865/

相关文章:

swift - 如何从解析 swift 检索音频文件

javascript - 如何将参数/变量传递给 casperjs 评估函数

Javascript - 三元中的typeof

javascript - 写一个简单的zepto插件

javascript - Parse - Obj-C 到云代码

javascript - 为什么我的 Parse Cloud Code 请求是 'unauthorized?'

javascript - 将项目插入数组后如何清除输入字段?

javascript - 如何将数据从链接传递到 jQuery 函数?

android - 嵌套对象的 ParseQueryAdapter 不起作用

ios - 如何滑动删除表格单元格以在解析时更新?