JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)

JavaScript中,对象包括3个特性,分别为,可扩展性,class标识符,属性。

如果对象的可扩展性为false,则不可为对象动态的添加属性。

对象包含分为存取器属性和值属性。存取属性为 {get r(){/*函数实现*/},set r(){/*函数实现*/}} 存取器属性自身不能保存值,set相当于对对象中其他的属性进行更改。get中也可以返回其他属性的值。属性的特性值为 可写性,可配置性,value,可枚举性。存取器属性使用get,set属性来替换可写性和value.

在没有实现ES5的浏览器中,使用__lookupGetter____lookupSetter__,方法第一个参数为属性名,第二个参数为function

来查看get set属性 通过 __lookupGetter__(‘x‘)__ 参数为属性名

通过Object.getownpropertydescriptor(对象,属性名) ,Object.defineProperty用此方法来添加属性,可以配置特性值。如果属性已存在,则修改特性值。Object.defineProperties 定义多个属性(对象,{

属性名:{特性值}

}) 一旦可配置性修改为false,则不可再次修改可配置性。其余特性修改有规则

可配置性为false,可写行可有true修改为false.其余基本都是不可变的。

对象.isPrototypeOf(a)指定对象原形链上是否有a,和 instanceof工作原理一样

对象.propertyIsEnumerable(属性) 属性是否为可枚举

对象.hasOwnProperty(属性) 属性是否为自有属性

in 关键词可以检测对象及其原形链上是否有某个属性

var 声明的变量不可以用delete删除

可配置为false的属性也不可以

时间: 2024-08-28 10:48:08

JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)的相关文章

JavaScript对象就是一组属性(方法)的集合

在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法) 很简单,即: 对象名.属性(方法)名 除此之外,还可以用方括号的形式来引用: 对象名[“属性(方法)名”] 注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符,例如: var arr=new Array(); //为数组添加一个元素 arr[“push”](“abc”); //获得数组的长度 var len=arr[“length”]; //输出数组的长度 alert(len); 图4.1 显

【JavaScript】浅析JavaScript对象如何添加属性和方法

向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添加属性和方法的四种方法,首先定义一个类 function MyClass(){} 1,使用类名添加属性 MyClass.prototype.myname="吴兴国01"; 2,使用类名添加方法 MyClass.prototype.myfunc=function(){alert("

spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式

spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式 在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid"}) //希望动态过滤掉的属性 例 @JsonIgnoreProperties(value={"comid"}) public interface 接口名称{ } @JsonIgnoreProperties(value={"comid"}) public class 类名{

spring data mongodb中,如果对象中的属性不想加入到数据库字段中

spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://www.boyunjian.com/javadoc/org.springframework.data/spring-data-mongodb/1.2.3.RELEASE/_/org/springframework/data/mongodb/core/query/Criteria.html#all(jav

访问对象中的属性与方法

访问对象中的属性: 引用名称.属性名称 访问对象中的方法: 引用名称.方法名称() 1 //第一步:编写类 2 class Student{ 3 //第二步:编写属性也叫做成员变量或实例(对象)变量 4 String name; //默认值为null 5 int age; //默认值为0 6 char sex; //默认值为\u0000 7 String address; //默认值为null 8 9 //第三步:编写方法 10 public void study(){ 11 System.ou

删除一个Javascript对象中的一个属性

一个Javascript对象如下 var myObject = { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*" }; 想要达到的目的如下 var myObject = { "ircEvent": "PRIVMSG", "method": &qu

javascript 构造函数中的属性与原型上属性优先级的比较

备注: 下面这个问题是我前天看书上发现的. 按照我以前的理解, a.rename()这个方法传什么值,结果都会弹出 小a,但我看书上的demo 弹出的是大A.... 我的困惑是:  js的构造函数中的属性与方法, 不是比原型对象上的属性与方法优先级要高吗?为什么会弹出的是大A? PS: 小弟很想有人能用通俗易通的语言, 简单的描述下,为什么会弹出的是 A, 而不是小 a.在此谢谢了  function F(name) { this.name = name; } var a = new F("a&

js 对象数组根据对象中的属性排序

function createComparisonFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; }else{ return 0; } }; };

列出JavaScript对象中的键

var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}; JavaScript对象如上 var getKeys = function(obj){ var keys = []; for(var key in obj){ keys.push(key); } return keys; }