在Ember中设置属性的不同方法

时间:2015-10-09 08:30:55

标签: ember.js

有什么区别:

myObject.set('some_property', 'myvalue');

Ember.set(myObject,'some_property', 'myvalue');

我正在使用第一种语法,但我注意到,很多人使用第二种语法与Ember.set()。那么这里的区别是什么?

1 个答案:

答案 0 :(得分:4)

@Igor,

myObject.set() vs Ember.set(myObject..)仅在myObject未知时才有意义。

如果您将myObject作为用户输入,那么最好使用`Ember.set(myObject,' some_property',' myValue'),因为我们将不确定myObject是否为空。例如:

let myObject = {};
myObject.set('some_property', 'myValue'); 

输出将是:未捕获的TypeError:myObject.set不是函数(...)。但是,如果使用Ember.set,那么

let myObject = {};
Ember.set(myObject, 'some_property', 'myValue'); 

将设置属性而不会抛出任何错误。

因此,如果JS对象未知,那么使用Ember.set的话就是使用.set(),你可以使用{{1}}。

Stefan Penner在reddit中给出了一个惊人的解释。这是链接:https://www.reddit.com/r/emberjs/comments/3mr5as/question_why_use_embergetthis_prop_instead_of/

希望它有所帮助。