开发者社区> 问答> 正文

javascript 对象之间的关系处理

是这样的,假设有两个对象,分别称为A,B吧,, 现在我的要求是:

对象A可以访问B的部分数据,但也只能是只读形式,
B对象自身可对自己的数据可读可写。
我想问的是应该如何实现:

我问的问题本质上是:javascript中一个对象如何控制自己的数据对外开放的权限。

展开
收起
a123456678 2016-03-13 10:21:04 1857 0
1 条回答
写回答
取消 提交回答
  • function UserEntity() {
            var userName = null;
    
            var userProtoType = (function() {
                var inside = false;
                return {
                    "userName": {
                        get: function() {
                            return userName;
                        },
                        set: function(value) {
                            //设置条件,如果是没有满足设置的条件,则不允许set
                            if (!inside) {
                                return false;
                            }
                            userName = value;
                        }
                    },
                    setUserName: {
                        value: function(value) {
                            inside = true;
                            this.userName = value;
                            inside = false;
                        },
                        writable: false, // 只读
                        configurable: false // 不可配置
                    }
                }
            })();
    
            Object.defineProperties(this, userProtoType);
        }
    
        UserEntity.prototype.setUserName = function(value) {
            this.userName = value;
        }
        var arc = new UserEntity();
        arc.userName = '张三' //外部设置
        console.log(arc.userName);//输出:null
        arc.setUserName('李四');//内部设置
        console.log(arc.userName);//输出:李四
    2019-07-17 19:02:00
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载