js中向对象中添加属性的两种方法?

js中向对象中添加属性的两种方法?,第1张

1.1 数据属性(`properties`),对象的普通属性将字符串名称映射到值。例如,下面对象obj有一个数据属性,名称为 prop,对应的值为 123:var obj = {prop: 123}可以用以下方式读取属性的值:console.log(obj.prop)// 123,console.log(obj["prop"])// 123,当然也可以用以下方式来设置属性的值:obj.prop = "abc"obj["prop"] = "abc"

1.2 访问器属性,另外,可以通过函数处理获取和设置属性值。 这些函数称为访问器函数。 处理获取的函数称为getter。 处理设置的函数称为setter:var obj = {get prop () {return 'Getter'},set prop (value) {console.log('Setter: ' + value)}}访问 obj 属性:>obj.prop'Getter'>obj.prop = 123Setter: 123。

1.3 内部属性一些属性只是用于规范,这些属于“内部”的属性,因为它们不能直接访问,但是它们确实影响对象的行为。内部属性有特殊的名称都写在两个方括号,如:凯闷内部属性[[Prototype]]指向对象的原型。它可以通过Object.getPrototypeOf()读取。它的值只能通过创建具有给定原型的新对象来设置,例如盯档弯通过object.create()或__proto__ 。

内部属性[[Extensible]]决定是否可以向对象添加属性。可以通过Object.isExtensible() 方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。可以通过Object.preventExtensions()方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。

属性特性(attribute),属性的所有状态,包括数据和元数据,都存储在特性(attribute)中。它们是属蠢野性具有的字段,就像对象具有属性一样。特性(attribute)键通常用双括号编写:

1.ArrayList方法摘要

构造方法摘要

ArrayList()

构造一个初始容量为 10 的空列表。

ArrayList(Collection<? extends E>c)

构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。

ArrayList(int initialCapacity)

构造一个具有指定初始容量的空列表。

方法摘要

boolean add(E e)

将指定的元素添加到此列表的尾部。

void add(int index, E element)

将指定的元素插入此列表中的指定位置。

boolean addAll(Collection<? extends E>c)

按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。

boolean addAll(int index, Collection<? extends E>c)

从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。

void clear()

移除此列表中的所有元素。

Object clone()

返回咐谈此 ArrayList 实例的浅表副本。

boolean contains(Object o)

如果此列表中包含指定的元素,则返回 true。

void ensureCapacity(int minCapacity)

如有必要,增闹简者加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。

E get(int index)

返回此列表中指定位置上的元素。

int indexOf(Object o)

返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。

boolean isEmpty()

如果此列表中没有元素,则返回 true

int lastIndexOf(Object o)

返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。

E remove(int index)

移除此列表中指定位置上的元素。

boolean remove(Object o)

移除此列表中首次出现的指定元素(如果存在)。

protected void removeRange(int fromIndex, int toIndex)

移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。

E set(int index, E element)

用指定的元素替代此列表中指定位置上的元素。

int size()

返回此列表中的元素数。

Object[] toArray()

按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。

<T>T[] toArray(T[] a)

按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

void trimToSize()

将此液薯 ArrayList 实例的容量调整为列表的当前大小。

2.js实现部分功能

复制代码 代码如下:

<html>

<script type="text/javascript" src="json.js"></script>

<head>

<script type="text/javascript">

function ArrayList(){

this.arr=[],

this.size=function(){

return this.arr.length

},

this.add=function(){

if(arguments.length==1){

this.arr.push(arguments[0])

}else if(arguments.length>=2){

var deleteItem=this.arr[arguments[0]]

this.arr.splice(arguments[0],1,arguments[1],deleteItem)

}

return this

},

this.get=function(index){

return this.arr[index]

},

this.removeIndex=function(index){

this.arr.splice(index,1)

},

this.removeObj=function(obj){

this.removeIndexwww.bjldfw.comindexOf(obj))

},

this.indexOf=function(obj){

for(var i=0i<this.arr.lengthi++){

if www.bjldfw.comarr[i]===obj) {

return i

}

}

return -1

},

this.isEmpty=function(){

return this.arr.length==0

},

this.clear=function(){

this.arr=[]

},

this.contains=function(obj){

return this.indexOf(obj)!=-1

}

}

//新建一个List

var list=new ArrayList()

//增加一个元素

list.add("0").add("1").add("2").add("3")

//增加指定位置

list.add(2,"22222222222")

//删除指定元素

list.removeObj("3")

//删除指定位置元素

list.removeIndex(0)

for(var i=0i<list.size()i++){

document.writeln(list.get(i))

}

document.writeln(list.contains("2"))

</script>

</head>

<body>

</body>

</html>

var B = {

C: [

["a", "枝嫌b", "c"],

[1, 2, 3]

],

D: "兆搭运族梁int"

}

var A = {

B: B,

C: B.C

}

console.log(A)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11988401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存