javascript 对象之间的关系处理
ringa_lee
ringa_lee 2017-04-11 10:07:14
0
6
403

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

  1. 对象A可以访问B的部分数据,但也只能是只读形式,

  2. B对象自身可对自己的数据可读可写。

我想问的是应该如何实现:


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

ringa_lee
ringa_lee

ringa_lee

全員に返信 (6)
洪涛

写个访问控制方法不就解决了么?

いいねを押す+0
    小葫芦

    常见的可以用IIFE做封装,export出来一些方法,get和set之类的。其实这种在我看来已经有点像Java了

    いいねを押す+0
      Peter_Zhu

      EC5有有get和set方法,在创建对象的时候可以写好方法

      いいねを押す+0
        巴扎黑

        setter&getter

        いいねを押す+0
          迷茫

          关于隐藏私有成员这个话题说简单有简单的解决办法,说复杂也有复杂的解决办法,各有优劣。

          这是我以前写的一篇博客,
          https://segmentfault.com/a/1190000003488631

          前端时间发现另一个方法,还没考虑成熟,空了再写。不过基本思路都是“闭包”

          いいねを押す+0
            阿神
            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);//输出:李四
            いいねを押す+0
              最新のダウンロード
              詳細>
              ウェブエフェクト
              公式サイト
              サイト素材
              フロントエンドテンプレート
              私たちについて 免責事項 Sitemap
              PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!