CN111078566A - 一种基于es6的对象自检方法 - Google Patents
一种基于es6的对象自检方法 Download PDFInfo
- Publication number
- CN111078566A CN111078566A CN201911322888.XA CN201911322888A CN111078566A CN 111078566 A CN111078566 A CN 111078566A CN 201911322888 A CN201911322888 A CN 201911322888A CN 111078566 A CN111078566 A CN 111078566A
- Authority
- CN
- China
- Prior art keywords
- self
- checking
- attribute
- value
- attributes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于javascript的ECMAScript 6版本的对象自检方法,具体包括如下步骤:步骤1、对象的自检属性配置:对象的自检属性由一个对象内的私有属性控制;a、自检属性由const进行定义;b、自检属性对自检要求进行说明,并对自检方式和方法进行自定义;步骤2、对象的实例化:(1)对象实例化时,对对象的自检属性赋值,(2)利用ES6的proxy特性,重构对象的get和set方法,以达到自检目的,对象的所有属性的修改均需通过所述自定义的规则检查,保障对象属性自动自检和自动处理。本发明利用Es6的一些特性来模拟其它语言的效果,达到在JavaScript语言中对象自动自检的目的。
Description
技术领域
本发明涉及一种对象自检方法,具体是指一种基于ES6的对象自检方法。
背景技术
在c#和java语言中,利用类的相关特性,类的实例化对象可以对自身进行检查,而在JavaScript中缺少相关的属性,所以需要自己来实现。
在JavaScript语言中,一切皆对象。而我们在工作经常需要对对象的各种属性进行判断,常用方法是循环对象属性,然后进行检查,但是这样使用起来不是很方便,复用效果也比较差。
发明内容
本发明为解决上述技术问题,提供了一种基于ES6的对象自检方法。
为了实现上述目的,本发明采取的技术方案如下:
一种基于javascript的ECMAScript 6版本的对象自检方法,具体包括如下步骤:
步骤1、对象的自检属性配置:
对象的自检属性由一个对象内的私有属性控制;对配置属性的要求如下:
a、自检属性由const进行定义,以保证配置的稳定性;
b、自检属性对自检要求进行说明,并对自检方式和方法进行自定义;
步骤2、对象的实例化
在对象的实例化过程中需要进行如下的操作:
步骤2-1、对象实例化时,对对象的自检属性赋值,该属性只能读取不能修改和删除,直至对象本身销毁;
步骤2-2、加载判断:利用ES6的proxy特性,重构对象的get和set方法,以达到自检目的,对象的所有属性的修改均需通过所述自定义的规则检查,保障对象属性自动自检和自动处理。
进一步的,在对象的自检过程中,如果属性值为对象,则需要安装对象本身的定义方式,重新加载该对象,将该对象实例化为一个可以自检的对象。
进一步的,在对象的自检过程中,如果属性值是数组,则循环数组内部的值,判断数组内的值是否为对象,如果是对象,则参照对象自检方法进行,如果非对象则按照规则自检,即可。
进一步的,当加载判断不成功,则为自检异常、自检不通过;如果自检不通过,则抛出异常,即可。
与现有技术相比,本发明所取得的有益效果如下:
1、本发明利用Es6的一些特性来模拟其它语言的效果,达到在JavaScript语言中对象自动自检的目的。
2、本发明通过自定义类的解析方法,来对对象自身进行处理,解决了javascript中采用get和set方法来对属性进行检查时,不适用于复杂对象的问题。
附图说明
图1为本发明一个实施例中一种基于ES6的对象自检方法的流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
图1示出了本发明一种基于javascript的ECMAScript 6版本的对象自检方法的一个实施例,具体包括如下步骤:
步骤1、对象的自检属性配置:
对象的自检属性由一个对象内的私有属性控制;对配置属性的要求如下:
a、自检属性由const进行定义,以保证配置的稳定性;
b、自检属性对自检要求进行说明,并对自检方式和方法进行自定义;
步骤2、对象的实例化
在对象的实例化过程中需要进行如下的操作:
步骤2-1、对象实例化时,对对象的自检属性赋值,该属性只能读取不能修改和删除,直至对象本身销毁;
步骤2-2、加载判断:利用ES6的proxy特性,重构对象的get和set方法,以达到自检目的,对象的所有属性的修改均需通过所述自定义的规则检查,保障对象属性自动自检和自动处理。
作为本发明一种基于javascript的ECMAScript 6版本的对象自检方法的一个优选实施例,在对象的自检过程中,如果属性值为对象,则需要安装对象本身的定义方式,重新加载该对象,将该对象实例化为一个可以自检的对象。
作为本发明一种基于javascript的ECMAScript 6版本的对象自检方法的一个优选实施例,在对象的自检过程中,如果属性值是数组,则循环数组内部的值,判断数组内的值是否为对象,如果是对象,则参照对象自检方法进行,如果非对象则按照规则自检,即可。
作为本发明一种基于javascript的ECMAScript 6版本的对象自检方法的一个优选实施例,当加载判断不成功,则为自检异常、自检不通过;如果自检不通过,则抛出异常,即可。
与现有技术相比,本发明所取得的有益效果如下:
1、本发明通过利用Es6的一些特性来模拟其它语言的效果,达到在JavaScript语言中对象自动自检的目的。
2、本发明通过自定义类的解析方法,来对对象自身进行处理,解决javascript中采用get和set方法来对属性进行检查时,不适用于复杂对象的问题。
以上所述实施方式仅为本发明的优选实施例,而并非本发明可行实施的穷举。对于本领域一般技术人员而言,在不背离本发明原理和精神的前提下对其所作出的任何显而易见的改动,都应当被认为包含在本发明的权利要求保护范围之内。
Claims (4)
1.一种基于javascript的ECMAScript 6版本的对象自检方法,其特征在于,具体包括如下步骤:
步骤1、对象的自检属性配置:
对象的自检属性由一个对象内的私有属性控制;对配置属性的要求如下:
a、自检属性由const进行定义,以保证配置的稳定性;
b、自检属性对自检要求进行说明,并对自检方式和方法进行自定义;
步骤2、对象的实例化
在对象的实例化过程中需要进行如下的操作:
步骤2-1、对象实例化时,对对象的自检属性赋值,该属性只能读取不能修改和删除,直至对象本身销毁;
步骤2-2、加载判断:利用ES6的proxy特性,重构对象的get和set方法,以达到自检目的,对象的所有属性的修改均需通过所述自定义的规则检查,保障对象属性自动自检和自动处理。
2.根据权利要求1所述的一种基于javascript的ECMAScript 6版本的对象自检方法,其特征在于,在对象的自检过程中,如果属性值为对象,则需要安装对象本身的定义方式,重新加载该对象,将该对象实例化为一个可以自检的对象。
3.根据权利要求1所述的一种基于javascript的ECMAScript 6版本的对象自检方法,其特征在于,在对象的自检过程中,如果属性值是数组,则循环数组内部的值,判断数组内的值是否为对象,如果是对象,则参照对象自检方法进行,如果非对象则按照规则自检,即可。
4.根据权利要求1所述的一种基于javascript的ECMAScript 6版本的对象自检方法,其特征在于,当加载判断不成功,则为自检异常、自检不通过;如果自检不通过,则抛出异常,即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911322888.XA CN111078566A (zh) | 2019-12-20 | 2019-12-20 | 一种基于es6的对象自检方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911322888.XA CN111078566A (zh) | 2019-12-20 | 2019-12-20 | 一种基于es6的对象自检方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078566A true CN111078566A (zh) | 2020-04-28 |
Family
ID=70316111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911322888.XA Pending CN111078566A (zh) | 2019-12-20 | 2019-12-20 | 一种基于es6的对象自检方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078566A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120824A1 (en) * | 2001-05-03 | 2003-06-26 | Scott Shattuck | System supporting object-oriented constructs in ECMAScript |
CN105830025A (zh) * | 2013-12-20 | 2016-08-03 | 微软技术许可有限责任公司 | 动态类型化的编程语言中的属性访问 |
CN106484489A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种扩展编程语言特性的方法及装置 |
CN109542405A (zh) * | 2018-11-02 | 2019-03-29 | 大唐网络有限公司 | 类的实例化方法及装置 |
CN110532181A (zh) * | 2019-08-19 | 2019-12-03 | 广州华旻信息科技有限公司 | Es6特性兼容性检测系统及方法 |
-
2019
- 2019-12-20 CN CN201911322888.XA patent/CN111078566A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120824A1 (en) * | 2001-05-03 | 2003-06-26 | Scott Shattuck | System supporting object-oriented constructs in ECMAScript |
CN105830025A (zh) * | 2013-12-20 | 2016-08-03 | 微软技术许可有限责任公司 | 动态类型化的编程语言中的属性访问 |
CN106484489A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种扩展编程语言特性的方法及装置 |
CN109542405A (zh) * | 2018-11-02 | 2019-03-29 | 大唐网络有限公司 | 类的实例化方法及装置 |
CN110532181A (zh) * | 2019-08-19 | 2019-12-03 | 广州华旻信息科技有限公司 | Es6特性兼容性检测系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145437B (zh) | 一种java注解测试方法及装置 | |
CN106354648B (zh) | 一种python自动化测试框架系统及测试方法 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
US10354031B2 (en) | Information processing by interpenetrating signal transmission channel in design for testability of chip | |
US20140331204A1 (en) | Micro-execution for software testing | |
JP6520074B2 (ja) | テストダブルの生成 | |
CN109885499B (zh) | 一种机器人自动化测试系统及测试方法 | |
CN108804305A (zh) | 一种自动化测试的方法及装置 | |
WO2018188380A1 (zh) | 一种添加控件标识的方法和装置 | |
CN103257919A (zh) | 脚本程序检查方法和装置 | |
US10268572B2 (en) | Interactive software program repair | |
CN105760292A (zh) | 一种用于单元测试的断言验证方法和装置 | |
CN104850476A (zh) | 跨平台接口自动化测试方法及系统 | |
CN103729293A (zh) | 一种基于uml活动图的gui测试方法 | |
WO2015039793A1 (en) | Derivation of generalized test cases | |
US20140019939A1 (en) | Iterative Generation of Symbolic Test Drivers for Object-Oriented Languages | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN111221721B (zh) | 一种单元测试案例自动化录制和执行方法及装置 | |
CN106021043A (zh) | 一种获取服务器配置信息的方法及装置 | |
CN104063307A (zh) | 一种软件测试方法和系统 | |
CN107273745B (zh) | 一种动态链接库形式的恶意代码的动态分析方法 | |
CN111078566A (zh) | 一种基于es6的对象自检方法 | |
CN102831334A (zh) | 一种目标地址定位方法和系统 | |
JP2021002326A (ja) | ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化 | |
CN107168875B (zh) | 一种基于安卓应用多入口特性的Activity构件泄露检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20221115 |