对象实际上是数据和函数的集合。通过执行new运算符,后跟要创建的对象类型的名称,可以创建对象。您可以通过创建对象类型的实例并向其添加属性和/或方法来创建自定义对象。
前面的话
在javascript中,对象为王;Javascript中的几乎所有东西都是对象或像对象一样使用。当你理解了对象,你就理解了Javascript。在javascript中,引用类型是一种用于将数据和函数组织在一起的数据结构。它也经常被称为类。引用有时被称为对象定义,因为它们描述了一类对象的属性和方法。
大多数引用类型的值都是对象类型的实例;而且,Object也是javascript中使用最多的类型。尽管对象实例没有太多的功能,但它们确实是应用程序中存储和传输数据的理想选择。
创建对象
有两种方法可以创建对象类型。
[1]Object构造函数
var person=new Object();
//如果不向构造函数传递参数,可以不留括号var person=new Object
person.name='白';
person.age=29
//创建一个没有属性的空对象
var Cody 1=new Object();
var cody2=新对象(未定义);
var cody3=新对象(空);
console.log(编码类型1,编码类型2,编码类型3);//object object对象
//创建字符串、数字、数组、函数、布尔值、正则表达式
console.log(新对象(' foo '));
console.log(新对象(1));
console.log(新对象([]));
console . log(new Object(function(){ });
console . log(new Object(true));
console.log(新对象(/\ bbt[a-z]\ b/));
【注意】object()构造函数本身就是一个对象,构造函数是基于函数构造函数创建的对象。
[2]使用对象字面量
Javascript为创建大多数本机对象值提供了称为文字的快捷方式。使用文本只会隐藏与使用new运算符相同的内容。
基本过程
var person={
姓名:'白',
年龄:29,
5:正确
};
【注意】逗号用于分隔对象文字量中的不同属性,但在最后一个属性后添加逗号会导致IE7-中出现错误
用对象的literal方法定义对象,属性名会自动转换成字符串。
//同上
var person={
姓名':'白',
年龄:29岁,
' 5 ':正确
};
如果将其花括号留空,则可以定义一个只包含默认属性和方法的对象。
//相当于var person=new Object();
var person={ };
[提示]用对象文字封装多个可选参数。
函数displayInfo(args){
var输出=“”;
if(typeof args.name=='string'){
output=' name:' args . name ' \ n ';
}
if(typeof args.age=='number'){
output=' Age:' args . Age ' \ n ';
}
console.log(输出);
};
显示信息({
姓名:“尼古拉斯”,
年龄:29岁
});
显示信息({
名称:“匹配”
});
上述传递参数的模式最适合需要向函数传递大量可选参数的情况。一般来说,虽然命名参数很容易处理,但当有多个可选参数时,它不够灵活。因此,形式参数用于必需的值,而对象文字用于封装多个可选参数。
设置对象
有两种方法可以访问对象的属性。您可以通过点符号或括号符号来获取、设置或更新对象的属性。
括号方法的两个优点是可以通过变量访问属性,属性名可以是Javascript无效标识符。
【注意】中文可以存在于变量中,因为中文相当于字符,和英文字符一样对待,所以可以写成person。白色或人['白色']
var myObject={
123:'零',
类别:“foo”
};
console.log(myObject['123'],my object[' class ']);//'zero' 'foo '
console . log(my object . 123);//报告错误
如果方括号内的值为非字符串类型,将使用String()将其隐式转换为字符串后输出;如果是字符串类型,有引号就输出原值;否则,它将被识别为变量;如果变量未定义,将会报告一个错误。
person[0]=1;//[]中的数字不会被报告为错误,但会自动转换为字符串。
人[a]=1;//[]符合变量命名规则的元素会被当作变量,变量未定义,会报错。
person[' ']=2;//[]空字符串不会报错,它实际存在,可以调用,但不会显示在控制台右侧的集合中。
person[未定义或空或真或假]=4;//不会报告错误,但会自动转换成字符串
人['白']=6;//不会报告任何错误。
删除对象
删除运算符可用于从对象中完全删除属性。删除是从对象中删除属性的唯一方法。将属性设置为undefined或null只能更改属性的值,而不会从对象中删除属性。删除只能删除对象下的数据,其他五种基本类型的值不能删除。
[注意]删除不会删除原型链上的属性。
var foo={ bar:' bar ' };
删除foo.bar
console . log(foo中的' bar ');//假
var a=123
删除a;
console . log(a);//123
如果变量A是在全局状态下声明的,相当于window对象下的一个数据A,可以用window.a或者A赋值,window.a和A的值总是相等的,但是不能删除。
var a;
a=10
console.log(a,window . a);//10 10
window.a=20
console.log(a,window . a);//20 20
删除a;
console.log(a,window . a);//20 20
删除window.a
console.log(a,window . a);//20 20
如果window.b用于声明和赋值(b相当于在window对象下声明),可以删除,使用delete b和delete window.b的效果是一样的。删除后console.log(b)提示变量不存在,console.log(window.b)提示未定义。
window.b=10
console.log(b,window . b);//10 10
删除b;
console . log(b);//报告错误
console . log(window . b);//未定义
window.b=10
console.log(b,window . b);//10 10
删除window.b
console . log(b);//报告错误
console . log(window . b);//未定义
对象嵌套
对象可以嵌套,但必须逐层赋值。
var student={
名称:{
中文:1,
英语:2
},
性别:1,
年龄:26岁
}
【注意】值只能逐层取,比如student.name.chinese,不能跨名字取。可以直接用student.chinese,因为在名字的同一层级下也可能有叫做中文的元素。
var object1={
对象1_1:{
object1_1_1:{foo: 'bar'},
对象1_1_2:{}
},
对象1_2:{
对象1_2_1:{},
对象1_2_2:{}
}
};
console . log(object 1 . object 1 _ 1 . object 1 _ 1 _ 1 . foo);//酒吧
实例方法
构造函数:保存用于创建当前对象的函数。
HasOwnProperty(propertyName):用于检查给定属性是否存在于当前对象实例中(而不是实例的原型)。其中propertyName必须指定为字符串。
IsPrototypeOf(object):用于检查传入对象是否是传入对象的原型。
PropertyIsenumerable(property name):用于检查是否可以使用for-in语句枚举给定的属性。其中propertyName必须指定为字符串。
ToLocaleString():返回对象的字符串表示形式,它对应于执行环境的区域。
ToString():返回对象的字符串表示形式。
Value():返回对象的字符串、数字或布尔表示形式,通常与toString()方法的返回值相同。
var myObject={
马克:对
};
console . log(my object . constructor);//函数对象(){}
console . log(my object . hasownproperty(' mark '));//真
console . log(object . prototype . isprototypeof(my object));//真
console . log(my object . propertyisenumerable(' mark '));//真
console . log(my object . tolocalestring());//[对象对象]
console . log(my object . tostring());//[对象对象]
console . log(type of my object . value of(),my object . value of());//object Object{mark:true}
小结:
Object类型
对象实际上是数据和函数的集合。通过执行new运算符,后跟要创建的对象类型的名称,可以创建对象。您可以通过创建对象类型的实例并向其添加属性和/或方法来创建自定义对象。
var o=new Object();
对象的每个实例都有以下属性和方法:
constructor——保存用于创建当前对象的函数。
HasownProperty(property name)3354用于检查给定属性是否存在于当前对象实例中(而不是实例的原型)。其中,作为参数的propertyName必须指定为字符串(例如:o.hasOwnProperty('name '))
isprototypeof (object) 3354用于检查传入的对象是否是另一个对象的原型。
PropertyIsenumerable(property name)3354用于检查是否可以使用for-in语句枚举给定的属性。
toString()——返回对象的字符串表示。
valueOf()——返回对象的字符串、数字或布尔表示。通常与toString()方法的返回值相同。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。