JS-4-对象

一、基础

js 基本类型:undefined、null、number、string、boolean

对象类型:

1、js内置的(如Number)

2、宿主环境(如window)

3、自己创建的

二、对象创建的方式

1、对象字面量形式

属性:

方法:

get、set型属性

2、成员访问

两种访问方法:. 和 []

没有的时候会返回Undefined

级联访问

3、Object

Object.defineProperty定义与修改属性

Object.defineProperties

事例:

var p = {

name :"CJ", //属性

work:function (){ //方法

console.log("working");

},

_age:18,

get age(){

  return this._age;

},

set age(val){

this._age = val;

},

address:{home:"jiating",office:”office“}


};

console.log(p.name);

console.log(p._age);//约定,带_的属性不要访问

p.age = 30;

console.log(p.age)

console.log(p.address.home)

var result = p && p.address && p.address.home;


var o = new Object();

o.name = "xxx"

o["abc"] = "abc"

Object.defineProperty(p,"yy",{value:100,writable:false});

p.yy;//100

p.yy=200;

p.yy;//100


//get.set,writable,enuerable,conigurable,value

Object.defineProperties(p,{

salary:{value:1000,writable:false},

gender:{value:true},

height:{get:function(){return 180},set:function(val){console.log(val)}}

});

p.salary;

三、对象的基本操作

1.成员的遍历

2.检查对象是否有某个属性

3.成员的删除(有的不能删除)

for(sx in p){ //无序

console.log(sx);console.log(p[sx])

}

Object.keys(p);//有序


”name“ in p;

p.hasOwnProperty("name");


delete p.name

四、成员特性

get.set,

writable(能否改值),

enuerable(遍历时能否出现),

conigurable(是否可配置),

value


Objet.getOwnPropertyDescriptor(p,"address")//获取属性特性


五、构造器与类型检测

顶级:Functon 二级:Object Number Array 

typeof 1;

typeof true;

o instanceof Object;

o instanceof o.constructor;


 六、对象工厂

function PersonFactory(pname,page){

return {

name:pname,age:page,headCount:1

}

}  

var p1 = PersonFactory("cj",22)

var p2 = PersonFactory("david",33)

缺点:对象完全独立,共有属性浪费


七、构造器

function Person(){ //作为一个类

//var age = 30; //无法访问 ,私有变量

this..age = 22;

this.name = "cj";

}

var p = new Person;

p.age

p.name

var p1= new Person;


//解决共同问题

Person.prototype.headCount = 1;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值