发表于: 2018-12-11 19:09:45
2 708
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
今天了解了一个新的东西
JS object(对象)
Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象,而每一个事物都有自己的表示的属性和对于某一信息作出的相应的操作。而这些东西就变成了事物的属性和方法。
对象直接量申明的方式
var obj= {
name:"Arvin",
lastName:"Huang" ,
whatsName:function(){
alert(this.name+" "+this.lastName);
},
}
由上面的代码我们可以看出实际上在JS中的对象就是一个以键值对形式存储属性的一个集合,每一个属性有一个特定的名称,并与名称相对应的值。其实这种关系是有一个专有名称的,我们可以称之为映射,当然对于对象来说,除了可以通过这种方式来保持自有属性,还可以通过继承的方式来获取继承属性。这种方式我们称作“原型式继承”。
静态定义方法
var obj = Object.create({x:1,y:2});//obj继承了属性x和y
二:js对象属性操作
1.访问属性。
对象属性的访问一般是通过obj.attr的方式来访问的,或者是obj[attr]的方式来进行操作,一般情况之下这样都是可以行的通的,但是但我们的是属性名称是一些特殊字段的额时候就要注意了,例如关键字或是保留字段,这是后我们要通过中括号的形式来访问才可以成功
2.属性赋值。
var obj = {
this.name = "Arvin";
};
obj.lastName = "Huang"; //此时对象将会被赋予一个新的属性为lastName并且其值为Huang
3.属性删除:
delete:一元运算符,用于删除对象和数组中的属性的,单它也仅仅是删除一个值,并不会返回删除的内容。
var o = {x:1, y:2};//定义了一个对象
delete o.x;
"x" in o; //这里将会得到false值。
var a = [1,2,3];
delete a[1];
2 in a; //元素2已经不再数组中了。
a.length == 3 //这里将会显示为true,虽然删除了属性但是,留下了一个占位,所以数组长度没有变化。
4.检测属性:
我们经常要判断某一个属性是否存在于某一个对象中。这个时候我们可以通过in运算符,hasOwnProperty()方法或是propertylsEnumerable()方法来进行判断。
var point = {x:1};
"x" in point; //这一个表达式最后返回的将会是true。
"toString" in point; //由于toString是继承方法,所以也是返回true.
"z" in point; //这一表达式最后返回false,因为point对象中没有z属性.
//数组可以通过索引来判断当前的数组中是否有相应的数据。
第二种检测的方法是hasOwnProperty()方法
第三种检测方式是用propertylsEnumerable()方法
5.枚举属性:
遍历属性将会是进场要用到的内容。
for/in循环遍历当前的对象的内容是一种很常见的手段。其可以遍历对象中的所有的可枚举属性,包括当前对象的自有属性和继承属性。
Object.key()方法,枚举属性名称的函数,他返回的是一个数组,其中存在的是对象中的可枚举属性名称组成。
Object.getOwnPropertyNames()方法,其返回的额也是数组,但是是所有的自有属性名称的数组。
明天计划的事情:(一定要写非常细致的内容)
利用js对象,完成法官日志的逻辑的编写
遇到的问题:(遇到什么困难,怎么解决的)
已经解决,如何保存数组状态。通过创建object赋予对象
收获:(通过今天的学习,学到了什么知识)
了解了js的object
评论