Javascript Ember.js、set()和计算属性

Javascript Ember.js、set()和计算属性,javascript,ember.js,computed-properties,Javascript,Ember.js,Computed Properties,我正在通读set()方法的语法,但我没有理解一个特定的段落 计算属性 如果尝试在具有计算属性的键上设置值 定义处理程序(参见get()方法获取示例),然后set()将 调用该方法,同时传递值和键,而不是简单地 更改值本身。这在您需要时非常有用 需要实现由一个或多个成员组成的属性 财产 我理解set()是如何独立工作的,但是设置计算属性(函数)仍然没有单击,即使在阅读了本段之后 有人能再解释一下或举个例子吗?为了更好地理解,你可以阅读 在这里,我只是想解释同样的事情 import Ember fr

我正在通读
set()
方法的语法,但我没有理解一个特定的段落

计算属性

如果尝试在具有计算属性的键上设置值 定义处理程序(参见get()方法获取示例),然后set()将 调用该方法,同时传递值和键,而不是简单地 更改值本身。这在您需要时非常有用 需要实现由一个或多个成员组成的属性 财产

我理解
set()
是如何独立工作的,但是设置计算属性(函数)仍然没有单击,即使在阅读了本段之后

有人能再解释一下或举个例子吗?

为了更好地理解,你可以阅读

在这里,我只是想解释同样的事情

import Ember from 'ember';
export default Ember.Component.extend({
    firstName: '',
    lastName: '',
    fullNameCP: Ember.computed('firstName', 'lastName', function() {
        return `${this.get('firstName')} ${this.get('lastName')}`
    }),
    fullNameCPwithGetSet: Ember.computed('firstName', 'lastName', {
        get(key) {
            return `${this.get('firstName')} ${this.get('lastName')}`;
        },
        set(key, value) {
            let [firstName, lastName] = value.split(/\s+/);
            this.set('firstName', firstName);
            this.set('lastName', lastName);
            return value;
        }
    })
});
在上述内容中,
如果我们说,
this.set('fullNameCP','Yehuda Katz')
之后,它将被视为普通属性,而不会被视为计算属性。您不应手动将
fullNameCP
设置为新值。如果要这样做,则需要使用Getter和Setter定义Computed属性,如
fullNameCPwithGetSet


如果我们说,
this.set('fullNameCPwithGetSet','Yehuda Katz')
,那么它将调用计算属性的方法
fullNameCPwithGetSet
,也就是通过传递值,
Yehuda Katz
,这样我们就可以为依赖键设置准确的值。

当你说“之后它将被视为正常属性”,你到底是什么意思?有没有任何例子来检查这种行为?在什么时候会发生这种情况?另外,使用Ember.set(a,b,c)是否也有相同的效果?这意味着,当您为没有getter的computed属性设置值时,这意味着如果有任何依赖属性更改,它将不会被重新计算。
另外,使用Ember.set(a,b,c)是否也有相同的效果具有相同的效果
-是
Ember.set
此.set
相同。