Object

对象(object)数据的值:堆内存

创建对象

  • 字面量(赋值式) var obj = {}
  • 内置构造函数 var obj = new Object();

添加 / 修改属性

  • 对象.属性名 = 新值
  • 特殊属性名:对象[“属性名”] = 属性值
    – 除了数字和布尔类型 属性值都加引号

删除属性

  • delete 对象.属性名

查找对象值

  • 对象.属性名

for in 遍历对象
语法:

for (var key in obj){
     obj[key]           key --->对象的每个属性
}

in 运算符

  • 通过该运算符可以检查对象是否具有该属性
  • 有返回 true,没有返回 false
  • 语法 “属性名” in 对象

Object.prototype.toString.call()

  • 检测所有的数据类型,返回值为(object Type)
创建面向对象
  • 字面量,内置构造函数
    – 缺点:代码量大,不利于维护

  • 工厂模式创建对象
    – 缺点:不知道对象从哪里来

  • 自定义构造函数(函数首字母大写)
    – 必须通过new关键字调用

自定义构造函数

每个函数都有一个指向本身的 - prototype 原型对象

实例对象

  • 构造函数通过new 调用得出来的变量
  • 每个实例对象都有指向构造函数远行对象的属性 __proto__

原型对象

  • 每个函数都有的对象 通过 构造函数.prototype 访问

方法的访问规则(原型链)
– 先在这个对象访问,如果没有就去原型上找(创建这个实例对象的构造函数),如果没有就去原型的原型对象找…直到找到object的原型对象(方法的顶层)

对象共有的属性方法,添加到原型对象中。
– 语法: 对象.prototype.属性名 = 属性/方法;

x instanceof obj - - ->x 是否是 obj 的实例

this指向
自定义构造函数的的执行过程:
【1】创建一个对象
【2】将构造函数中的this 指向这个对象
【3】执行构造函数中的代码
【4】默认情况会把这个对象当成 构造函数的返回值返回

自定义构造函数中的return也重要:
【1】不写return的时候,默认返回this
【2】写了return
1】return 后面的值为基本数据类型 ,返回值的值还是 this
2】return 后面的值为复杂的数据类型,那么你写什么就返回什么

普通函数中 return
【1】不写return ,返回 undefined
【2】写return 返回你写的东西 return 后面的东西

判断 实例 和 原型 对象有没有某个属性 “属性”in obj
判断 实例 有没有某个属性 obj.hasOwnProperty(“属性”)
判断 原型 有没有某个属性
!obj.hasOwnProperty(‘属性’) && (‘属性’ in obj)

Configurable:表示能否通过delete删除属性从而定义属性
Enumberable:表示是否能通过for-in循环返回属性 true | false
Writeable:表示能否修改属性的值 true | false
Value:包含这个属性的数据值
要修改属性的默认的特性,需要使用Object.defineProperty(),该方法接收三个参数:属性所在的对象,属性的名字和一个描述符对象,其中描述符对象的属性必须是:configurable,enumberable,writable和value,设置一个或多个值,即可修改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值