-
JS对象属性的四大特征
2020-06-14 21:36:41四大特征分别是: value value:值,//实际存储属性值 writable writable:true,//控制值(value)是否可修改,默认是true可修改的 enumerable enumerable:true,//控制是否可用for in遍历到默认是true,即使不能for in,用...一.四大特征分别是:
- value
value:值,//实际存储属性值 - writable
writable:true,//控制值(value)是否可修改,默认是true可修改的 - enumerable
enumerable:true,//控制是否可用for in遍历到默认是true,即使不能for in,用"."也能访问 - configurable
//控制是否可以修改其他特性,是否可以删除属性,修改不可逆转默认是true;
二.访问和修改:
1.访问语法:Object.getOwnPropertyDescritor(obj,"属性名");
2.修改:
Object.defineProperty(obj,"属性名",{ 特性名:特性值, 特性名:特性值, ... })
三.举例说明:
eg:
1.同时修改属性的多个特征语法:Object.defineProperties(obj,{ 属性名:{ 特性名:特性值, ... }, 属性名:{ 特性名:特性值, ... }, })
var obj = { id : 1000, name : 'yong', age : 22 } //获取id的特征 var te = Object.getOwnPropertyDescriptor(obj,'id'); console.dir(te); // 修改obj对象的id属性为只读 Object.defineProperty(obj, "id",{ writable:false }); //批量修改 Object.defineProperties(obj,{ id:{ writable:false, configurable:false }, name:{ configurable:false }, age:{ enumerable:false, configurable:false } });
五.扩展:
1.值得注意的是:防止在对象创建,修改对象的结构/内容,强调:必须启用严格模式才能报错!2.严格模式语法:
"use strict";//启动严格模式验证四大特征
- 写在js代码的第一行【全局启动严格模式】,或者函数的第一行【函数内部启动严格模式】
4.严格模式的特点:
== 将静默错误提升为报错==5.防扩展:禁止给对象添加任何新属性
Object.preventExtensions(obj);//禁止扩展
6.密封:seal 在防扩展的基础上,再禁止删除现有属性,即不能添加,又不能删除
相当于将所有属性的configurable特性都设置为false,删除不存在的不报错Object.seal(obj);//修改所有属性的configurable特性为false
7.冻结:禁止给对象做任何修改(包括结构和值)
Object.freeze(obj);//修改所有属性的writable特性为false
- value
-
js对象『属性特征』和『对象特征』
2015-12-02 14:23:44变量y也是指向同一个对象的引用,而非这个对象的副本。通过变量y修改这个对象也会对变量x造成影响。 对象最常见的用法是create、set、query、delete、test、enumerate 它的属性。 属性包括名字和值。属性名...对象是可变的,我们通过引用而非值来操作对象。如果变量x是指向一个对象的引用,那么执行代码 var y = x; 变量y也是指向同一个对象的引用,而非这个对象的副本。通过变量y修改这个对象也会对变量x造成影响。
对象最常见的用法是create、set、query、delete、test、enumerate 它的属性。
属性包括名字和值。属性名可以是包含空字符串在内的任意字符串,但对象不能存在两个同名的属性。值可以是任意js值,或者可是一个getter或setter函数。除了名字和值之外,每个属性还有一些与之相关的值,称为『属性特征』
除了包含属性之外,每个对象还拥有三个相关的对象特征(object attribute):
1.对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象。
2.对象的类(class)是一个标识对象类型的字符串。
3.对象的扩展标记(extensible flag)指明了是否可以向该对象添加新属性。 -
数据对象的属性(特征)类型
2017-07-19 09:43:44当我们在对属性进行处理时,分清属性的类型是有必要的,不同类型的属性需要使用不同的处理方法,如在对对象的标识列进行处理时,对该列进行数学运算是没有意义的,因为对象的标识列一般是标称属性,只是起到唯一标识...在数据挖掘/机器学习过程中,当我们在对属性进行处理时,分清属性的类型是有必要的,不同类型的属性需要使用不同的处理方法,如在对对象的标识列进行处理时,对该列进行数学运算是没有意义的,因为对象的标识列一般是标称属性,只是起到唯一标识的作用。数据对象的属性类型可以用下图来概括:
从图中可以看出,数据对象的属性类型可以分为标称属性、二元属性、序数属性、数值属性四大类。其中二元属性是标称属性的特例。下面从各种属性类型的特点、可以使用的中心趋势度量、是否可以离散化三个维度来概括。
1 标称属性
标称属性的值是一些符号或事物的名称,但可以用数字表示这些符号或名称,标称属性的值是枚举的。常见的标称属性如姓名、籍贯等。鉴于标称属性的特点,统计它的中位数和均值是没有意义的,但是我可找出某个出现次数最多的值,比如,出现次数最多的姓名,这个就可以用众数来表示。因此,标称属性的中心趋势度量一般是众数。
2 二元属性
二元属性是标称属性的特例,也是一种布尔属性,对应0和1两个状态,分别表示false和true。常见的二元属性如抛一枚硬币是正面朝上还是反面朝上,患者的检查结果为阴性还是阳性。二元属性分为对称的和非对称的,如果属性的状态结果是同等重要的,如抛硬币的结果状态,则该属性是对称的二元属性,反之为非对称二元属性。由于二元属性也是标称属性的一种,因此只能用众数来统计二元属性。
3 序数属性
序数属性的可能值之间存在有意义的序或秩评定,但是相继值之间的差是未知的,常见的序数属性如上衣的尺寸有S、M、L、XL,可以用数字,如1、2、3、4分别对应属性的S、M、L、XL值。由于序数属性是有序的,它的中位数是有意义的,因此序数属性的中心趋势度量可以是众数和中位数。
标称属性、二元属性、序数属性都是定性的,且都是离散的。
4 数值属性
数值属性用整数或实数值表示,常见的数值属性如年龄。数值属性可以是区间标度的或比率标度的。区分区间标度和比率标度属性的原则是该属性是否有固有的零点,如摄氏温度没有固有的零点,比值没意义,所以是区间标度属性,而开式温度有固有的零点,比值是否有意义,所有是比率标度属性。数值属性的平均值是有意义的,如某个城市的平均年龄可以看出这个城市的老龄化情况,因此,数值属性可以用众数、中位数、平均值三个中心趋势度量来统计。
数值属性是定量的,可以是离散的也可以是连续的。
-
对象的属性
2020-11-30 12:21:23标签上面的自定义属性(属性前没加data-的自定义属性)不会被设置成对象的特征 <div class="box" title="我是盒子" data-zs="zhangsan">zhangsan</div> var objBox = document.querySelector('.box'); ...对象的特征property
操作一个对象首先要找到这个对象
这个对象在初始化时,把html标签的全局和自有属性设置为对象的特征,还有很多其他的特征
标签上面的自定义属性(属性前没加data-的自定义属性)不会被设置成对象的特征<div class="box" title="我是盒子" data-zs="zhangsan">zhangsan</div>
var objBox = document.querySelector('.box'); /*相当于 var objBox = { title:"我是盒子", className:"box"//因为class是所有编程语言都通用的关键字,所以避开了class这个名字,改成了className }*/
以对象的形式在控制台打印objBox这个对象
console.dir(objBox)
可以使用.语法、[]语法读取和修改对象的属性,但读取不出来自定义(属性前没data-的自定义)属性
objBox.title = '我是通过js修改的'
读取data-自定义属性
console.log(objBox.dataset.zs);//zhangsan
-
JAVA面向对象的特征及什么是面向对象
2017-11-29 17:44:33面向对象的特征有哪些方面 封装、继承 、抽象、多态等 封装: 为了实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。 1)面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个... -
对象的特征
2020-04-02 13:33:06实例属性:类被实例化后才会具有的属性。 类属性:类定义后就存在,而且不需要实例化 私有属性:使用__开头的变量名加以标志,只有类对象自己能访问;使用_开头的变量名加以标注,...__base__包含类对象的全部基类... -
面向对象的特征
2021-01-04 18:12:39面向对象的特征 面向对象的特征:封装、继承、多态、抽象 下面来具体介绍。 封装 封装是指将对象的属性和行为封装成一个整体,尽可能隐藏具体的实现, 只可以通过提供的方法实现相应的需求,不让别人知道是如何实现... -
面向对象的特征_JAVA 面向对象的特征主要有以下几个方面
2020-12-16 16:27:38抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。封装封装把一个对象的属性私有化,同时提供一些可以被外界... -
面向对象的概念和属性
2021-01-31 19:28:17类是模子,确定对象将会拥有的特征(属性)和行为(方法) 类是对象的类型 类的定义语法: [访问修饰符] + class + 类名 { 成员 } 类的实例化: 语法:类 实例名 = new 类(); 类的成员访问: 实例名.属性 实例... -
对象中的属性四大特征以及getter,setter
2020-07-04 16:54:00const obj = { ID: "01", Name: "张三", } obj.ID = "02"; obj.age = 20; delete (obj.Name); /* obj={ ID:"02", age:20 } */ ...在上面我们可以看出数据被直接添加,修改,删除,特别是I -
保护对象的属性
2020-06-14 22:40:55在js中对象的属性,在没有做任何处理的情况下,是随时可以修改属性值 、添加新属性,删除属性的,非常不安全,对于一些重要的数据,我们不希望它不能进行删除,修改等操作。所以这时候,就诞生了相关的方法。 对象... -
对象的属性和方法
2020-07-19 13:40:27对象的特征: 属性–静态特征 方法–动态特征 对象:用来描述客观事物的某一个实体,又一组属性和方法构成,即由静态特征和动态特征构成。 类是对象的抽象,对象是类的具体实现 类是具有相同特征的对象的集合(集合... -
c#中数组的声明和初始化以及字符串(string)对象基础特征/属性/常用方法/字符串格式化Format
2019-06-07 17:51:46数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 初始化数组 声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是一个引用类型,所以您需要使用 new 关键字来... -
面向对象的特征?
2019-03-26 15:45:16隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。 继承:继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等,而不需要再次编写相同的代码。 多态:... -
JS对象中的属性类型、属性定义和属性读取
2019-10-20 21:44:51对象的属性类型有两种,一种是数据属性,是数据值的保存位置;另一种是访问器属性,包含getter和setter函数。 数据属性 数据属性包含一个数据值的位置,在这个位置可以读取和写入值。数据属性有四个描述其特征的特性... -
面向对象的特征有哪些
2017-04-19 18:50:51面向对象的特征:封装、继承、抽象、多态4个主要的特征 封装 保证软件具有良好的模块性, 封装的目标-----高内聚,低耦合 在面向对象的编程语言中,对象是封装的的最基本单位,面向对象的封装比传统语言的封装... -
面向对象的特征和原则
2019-03-25 09:07:49面向对象中的三个基本...这样对象内部数据就有不同级别的保护,防止了程序中某些部分被意外改变或者错误引用了对象的私有属性。 2、继承,实现对象复用性的一个方法,可以在不重复编写以实现某个功能的前提下,对... -
全面了解python中的类,对象,方法,属性
2020-12-23 21:30:02在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) 比如人类,动物,