Javascript:创建对象而不是 return 语句?这是如何运作的?

Javascript: creating an object instead the return statement? How does this work?

我对下面的代码很困惑。为什么 "set:" 而不是 return 语句?如何调用 set 函数?谢谢

BrainBrowser.createTreeStore = function() {

var tree = {};

return {
  set: function() {
    var value = arguments[arguments.length - 1]; 
  },

它有点像 setter/getter 为 createTreeStore 定义的,如果您希望在用户设置此对象的值(或读取值)时有更多行为,请使用它。

例如:

Object.defineProperty(document.body, "description", {
    get : function () {
       console.log("You are reading my value!!!");
       return this.desc;
    },
    set : function (val) {
       console.log("Thanks for new value!");
       this.desc = val;
    }
});

用法:

document.body.description = "Content container";

打开console你会看到日志:

Thanks for new value!

在此处阅读更多内容:http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/