首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用ES5计算Aurelia的性质

用ES5计算Aurelia的性质
EN

Stack Overflow用户
提问于 2015-08-15 19:34:42
回答 1查看 536关注 0票数 4

我正在学习Aurelia教程,但我只有意使用ES5和AMD/RequireJS,因为最初我试图减少我可能需要在当前的生产应用程序中引入的技术过载(该应用程序目前使用的是角,但我正在考虑将其转换到Aurelia,而不是角2),但我仍然坚持要让计算的属性正常工作。

我注意到,4月的最新情况从对象原型中删除了计算函数,这允许使用以下语法,但我不确定应该做什么,而不是使用以下语法:

代码语言:javascript
运行
复制
Welcome.computed({
    fullName : function() { return this.firstName + " " + this.lastName; }
});

我可以实现与以下相同的效果,但它似乎相当冗长,考虑到什么是正在实现的!有正确的方法吗?

代码语言:javascript
运行
复制
Object.defineProperty(
  Welcome.prototype,
  "fullName",
  {
    get: function() { return this.firstName + " " + this.lastName },
    enumerable: true
  });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-15 23:40:04

您所做的是正确的-您可以总是重新添加计算工厂方法,因为编写所有这些额外的ES5代码可能会变得乏味。

我还建议指定计算属性的依赖项以优化数据绑定效率。以下代码片段是等效的:

ES5:

代码语言:javascript
运行
复制
function fullName() { return this.firstName + ' ' + this.lastName }
fullName.dependencies = ['firstName', 'lastName'];
Object.defineProperty(
  Welcome.prototype,
  'fullName',
  {
    get: fullName,
    enumerable: true
  });

ES-10/ES-10:

代码语言:javascript
运行
复制
@computedFrom('firstName', 'lastName')
get fullName() {
  return `${this.firstName} ${this.lastName}`;
}

http://aurelia.io/docs.html#adaptive-binding

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32028553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档