首页 > 编程语言 >JavaScript黑科技:变量监听

JavaScript黑科技:变量监听

时间:2023-04-13 16:43:44浏览次数:36  
标签:function obj 变量 JavaScript value test console 监听 log

作者:JShaman团队,转载请保留

功能目标

实时监视一个变量的值,当值发生改变时,马上给出提示。

实现方法一

直观且朴素的方法,可以用setInterval,循环检测变量的值,示例代码:

<html>
<body>
    <script>
        //要监视的变量
        var test_value = 1;
        setInterval(function(){
            if(test_value != 1){
                console.log("值变成了:",test_value);
            }
        },1000);
    </script>
</body>
</html>

运行效果:

JavaScript黑科技:变量监听_html

虽然确实可以实现,但笨拙且低效果。

实现方法二

先看代码:

<html>
<body>
    <script>
        var test_obj = {};
        Object.defineProperties(test_obj, {
            a: {
                get: function() {
                    console.log("取值:",a)
                    return a
                },
                set: function(new_value) {
                    a = new_value;
                    console.log("设值:",a)
                }
            }
        });
        test_obj.a = "JShaman是专业的JavaScript混淆加密平台";
    </script>
</body>
</html>

这段代码中,使用了对象,defineProperties方法可以设置或修改对像的属性,对像的get、set分别是取值、赋值方法。于是便可以优雅的监视变量值。

初始设置test_obj.a为1,之后任意时间修改值,都会被实时察觉,运行效果如下:

JavaScript黑科技:变量监听_js_02

标签:function,obj,变量,JavaScript,value,test,console,监听,log
From: https://blog.51cto.com/jsjiami/6188135

相关文章

  • 微网两阶段鲁棒优化matlab版 采用CCG和kkt条件编制两阶段鲁棒优化程序,以储能、发电、
    微网两阶段鲁棒优化matlab版采用CCG和kkt条件编制两阶段鲁棒优化程序,以储能、发电、风电和光伏容量作为第一阶段变量,以主体出力作为第二阶段变量,以负荷、风电和光伏出力作为不确定性变量,实现微网两阶段优化模型ID:2190641653026839......
  • dart中int类型变量与String类型变量拼接的三种方式
    dart中int类型变量与String类型变量拼接的三种方式//声明一个String类型变量Stringstr="你好Dart";//声明一个int类型变量intx=1;1、传统语言写法print(str+x.toString());2、类似于过JavaScriptes6新特性的写法2、print(str+"${x}");3、最简单的写法省略了{}......
  • 机器学习(六):回归分析——鸢尾花多变量回归、逻辑回归三分类只用numpy,sigmoid、实现RANS
    [实验1回归分析]一、预备知识使用梯度下降法求解多变量回归问题数据集Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数据,每条记录都有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可......
  • 01.变量
    变量是一个保存数据的地方,当我们需要在程序里保存数据时,就需要一个变量来保存它。用一个变量保存了数据,它才能参加到后面的计算中,比如计算找零。点击查看代码#include<studio.h>intmain(){//定义一个变量。变量名是price,类型是int,初始值为0intprice=0;p......
  • 4、Web前端学习规划:JavaScript - 学习规划系列文章
          JavaScript作为Web前端里的第3重要的语言,笔者认为该重点进行学习。因为JavaScript衍生出来的框架和类库有不少,而且很强大。所以JavaScript的学习要抓好重点,在基本的语法及应用上学习相关的框架和类库,更好的为Web前端的开发应用做好准备。 1、简介;JavaSc......
  • go语言基础-变量和常量
    0x00标识符与关键字0x01标识符go语言中的标识符是由数字,字母和_(下划线)组成的,并且只能由字母和_开头。eg:abc,_,_abc,abc10x02关键字关键字是指编程语言中定义好的具有特殊意义的标识符。(关键字和保留字都不建议作为变量名)go语言中常用的25个关键字breakdefault......
  • Javascript对象
    对象对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串,数值,数组,函数对象由属性和方法组成属性:事物的特征,常用名词方法:事物的行为,常用动词创建对象利用对象字面量创建对象varobj={uname:'tom',age:18,sex:'男',......
  • JavaScript 数组字符串转换Json格式
    JavaScript数组字符串转换Json格式//滔Roy2023.04.13functionparseStringToArray(str){//尝试将字符串解析为JSON格式try{constarr=JSON.parse(str);//如果解析成功,则直接返回解析结果if(Array.isArray(arr)){returnarr;}}......
  • mybatis全局变量 (mybatis.configuration.variables) 的应用
    mybatis.configuration.variables是一个可自定义的全局变量:在application.yml中定义:mybatis:mapper-locations:classpath:mapper/*.xmltype-aliases-package:com.example.entityconfiguration:variables:dbtype:mysqlmapper.xml中的使用:<!--更新......
  • JavaScript基础知识
    JavaScript基础知识JavaScript是什么?JavaScript是一门编程语言,可以实现很多的网页交互效果。开web页面的脚本语言JavaScript的书写位置?内部JavaScript写在body结束标签上方script里面外部JavaScript通过scriptsrc=引入js文件但是script里面不要写内容,否则会被忽略JavaSc......