Skip to content
静心静心
HOME
DoubtfulCases
github icon
  • JAVASCRIPT

    • 封装Ajax
      • 面试题
        • 模块化JQuery
          • 深拷贝和浅拷贝
            • 有趣的javascript
              • 原型链
                • FAjax copy
                  • Javascrpt 中 方法
                    • JS获取数组的最后一项
                      • js正则正方向查找
                        • js重要
                          • 数字滚动
                            • 纯css手风琴
                              • JS设置全局变量
                                • 语法
                                • JS 寄生式组合继承

                                JS设置全局变量

                                author iconYYtimer icon小于 1 分钟

                                此页内容
                                • 语法

                                # JS设置全局变量

                                在listen.js中

                                module.exports.listen = function (obj, name, callback) {
                                    Object.defineProperty(obj, name, {
                                        configurable: true,
                                        set: function (newVal) {
                                            this._type = newVal
                                            callback(newVal)
                                        },
                                        get: function () {
                                            console.log('get:' + this._type)
                                            return this._type
                                        }
                                    })
                                }
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13

                                在 new.js中 // 监听obj对象中的h 变量

                                const { listen } = require('./listen.js');
                                let obj = { h: '' }
                                listen(obj, 'h', (val) => {
                                    console.log(val, '变化后的值')
                                })
                                
                                1
                                2
                                3
                                4
                                5

                                # 语法

                                :🔗https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#%E8%AF%AD%E6%B3%95

                                Object.defineProperty(obj, prop, descriptor)
                                
                                
                                1
                                2

                                obj :要定义属性的对象。

                                prop: 要定义或修改的属性的名称或 Symbolopen in new window 。

                                descriptor: 要定义或修改的属性描述符。

                                function Archiver() {
                                  var temperature = null;
                                  var archive = [];
                                
                                  Object.defineProperty(this, 'temperature', {
                                    get: function() {
                                      console.log('get!');
                                      return temperature;
                                    },
                                    set: function(value) {
                                      temperature = value;
                                      archive.push({ val: temperature });
                                    }
                                  });
                                
                                  this.getArchive = function() { return archive; };
                                }
                                
                                var arc = new Archiver();
                                arc.temperature; // 'get!'
                                arc.temperature = 11;
                                arc.temperature = 13;
                                arc.getArchive(); // [{ val: 11 }, { val: 13 }]
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                17
                                18
                                19
                                20
                                21
                                22
                                23
                                edit icon编辑此页open in new window
                                上一页
                                纯css手风琴
                                下一页
                                JS 寄生式组合继承
                                傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。
                                Copyright © 2022 YY

                                该应用可以安装在您的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和您的操作系统安全地进行交互。

                                详情