为什么Backbone的模型中的getter和setter?

7 backbone.js

为什么有Backbone模型的getter和setter?没有私有/受保护的属性,因此getter和setter对封装有点无用.我知道它们对验证有用,但除此之外,如果我们可以绕过它们,它们的效用是什么?

use*_*r10 11

set 不仅仅是做下面的事情.

this.attributes["key"] = value;
Run Code Online (Sandbox Code Playgroud)

如果你绕过它,你将会错过它在这里所做的所有其他功能.

目前它正在做两个功能.

1. _validate在将值分配给属性之前调用方法.参考这个.

2. change如果你监听属性更改,它会触发事件.

如果他们将来添加更多功能,如果你旁路,你可能会失去它们set.