1.对象的创建
字面量模式:
var obj = {name:‘zhangsan’}
构造函数模式:
var obj = new Object();
obj.name = ‘zhangsan’;
2.对象的访问
属性访问:
点语法:obj.name
中括号访问:obj[‘name’]
方法访问:obj.sayName(返回该方法的值) obj.sayName() (执行该方法)
遍历对象属性:for…in…
新增属性:obj.age = 18
删除属性:delete obj.age
3.Object的显示类型转换(强制转换)
Boolean(value):把value转换成Boolean型
除了null是false,其他都是true
String(value):把value转换成字符串
显示转换与隐式转换规则类似,当要将对象转换为String时,类似隐式转换中的PreferredType为String
1.先调用对象的toString方法
2.判断该方法的返回值是否为基础数据类型(Number,String,Boolean,Undefined,Null)
3.若返回值为基础数据类型,则转换规则按照相应数据类型的转换规则对其进行转换
4.若返回值不为基础数据类型,则在该返回值的基础上继续调用valueOf方法
5.判断valueOf的返回值是否为基础数据类型
6.判断是否为基础数据类型,若是基础数据类型则进行操作3
7.若仍旧不为基础数据类型则报错
Number(value):把value转换成数字
显示转换与隐式转换规则类似,当要将对象转换为Number时,类似隐式转换中的PreferredType为Number
1.先调用对象的valueOf方法
2.判断该方法的返回值是否为基础数据类型(Number,String,Boolean,Undefined,Null)
3.若返回值为基础数据类型,则转换规则按照相应数据类型的转换规则对其进行转换
4.若返回值不为基础数据类型,则在该返回值的基础上继续调用toString方法
5.判断toString的返回值是否为基础数据类型
6.判断是否为基础数据类型,若是基础数据类型则进行操作3
7.若仍旧不为基础数据类型则报错
4.检测属性
in:console.log(‘name’ in obj) 检测该属性是否是该对象的自有属性或者继承属性
Object.prototype.hasOwnProperty() 检测该属性是否是该对象的自有属性,是返回true,不是返回false
Object.prototype.propertyIsEnumerable() 检测是否是自有属性,并且还要求是可枚举属性,即自己创建的属性
5.原型对象和构造函数
原型对象 原型对象中存在许多可以被实例继承的方法,在原型对象中有一个constructor属性指向其构造函数
构造函数 构造函数中有一些只能由自身调用的静态方法,构造函数可以用来创建实例,构造函数中有一个prototype属性指向其原型对象
实例 由构造函数创建的实例对象,每个实例对象中都能够继承其原型对象中的实例方法