不会有任何问题。首先,在更改之前编写的所有代码假定计算的observables不可链接,因此没有人会使用setter返回的值。其次,使用返回值的所有地方都调用getter。
换句话说,就是所有的遗留代码看起来像
var value = obj.property(); // note the lack of parameters
obj.property(value); // note the absence of either chaining or assignment
没有链接这个代码:
obj.property(value).anything
会抛出一个类型的错误。所以要担心的唯一情况的是
someVar = obj.property(value);
目前始终返回undefined
。至于我,它看起来像一个相当虚假的代码,因为有更好的方法来设置一些变量undefined
。
所以,如果你想要chainig去与这个变化。
任何想法为什么它没有实现?
因为在大多数传统语言(Java,C#,C++,PHP)中,链接通常是一个例外而非标准。在JavaScript世界中,只有少数库像jQuery,Underscore和d3那样大量使用链接。不过,包括Knockout在内的大多数其他库并不依赖于它。
另外史蒂夫桑德森可能已经忘记了对计算观测值的支持。给他一个建议;)
我不认为这会导致任何问题。 – 2012-04-25 14:07:52