js 往对象集合加元素

JavaScript024

js 往对象集合加元素,第1张

有时候项目需要往json加入一些参数。

1.如果是数组Array就可以直接用a.push(xxx) 的方式加入

2.如果是一个集合,就是对象的话[{ aa:11,bb:22},{ aa:11,bb:22}],那么可以用遍历(点xx)的方式添加

这样出来结果就是

var arr = [

{a:1,b:2,c:3},

{a:4,b:5,c:6},

{a:7,b:8,c:9}

]

arr1=[]

arr.forEach(function(v){ arr1.push(v.a)})

console.log(arr1)

我来根据我的理解回答一下LZ的问题,如果有不对的地方还请多多指教!

1.cc //这个是函数体本身,用在给函数添加或者调用属性一类的事情

2.cc() //执行函数体

3.new cc() //创建一个cc函数的对象,如果你理解面象对象的话,就会很容易理解

关于this

this在函数体里的含义不相同,就function cc(){this.i="cc"}而言,如果没有创建对象,那这个this就代表window对象,这时候你如果执行cc()的话,window对象中就会有一个值为"cc"的属性i.如果创建了一个cc对象:var c=new cc()这时候this指的就是新建的对象c.

关于prototype

JavaScript的所有function类型的对象都有一个prototype属性.这个prototype 属性本身又是一个object 类型的对象,因此我们也可以给这个prototype 对象添加任意的属性和方法.

关于this和prototype区别

this的级别高于prototype,举个例子

function cc(){this.i="cc"}

cc.prototype.i="aa"

alert(new cc().i)// i="cc"

这时候如果把this.i="cc"去掉的话,则会显示"aa"

关于new cc().prototype

前面说过,function类型的对象都有一个prototype属性,而如果new cc().prototype这么写,就相当在cc()的对象上创建了一个名字为prototype属性,它的值为undefined,没有实际意义.

cc={}这种形式就是创建了一个对象的简写,和cc=new Object()一样. 对象里有两个属性width和height.

他妈的arguments 的意思就是函数的实参,比如

function cc(){alert(arguments[0])}

cc("参数一")

cc.apply()的原形是cc.apply(func,args[])意思就是在名为func的函数中加入一个cc函数,args是cc函数的参数,用数组形式表示. 执行完这条以后就可以在func的对象中调用cc函数了

和apply()相似的是call().两个作用相同,只是call(func,arg1,arg2,...)里面的参数不是数组形式,要用逗号隔开写

希望对LZ有所帮助,如果大家觉得有什么不对的地方请尽情提出!谢谢!