对象之一

对象之一

对象的种类
1.js内置的(如Number)
2.宿主环境(如window)
3.自己创建

对象的创建
1.对象字面量形式
属性 方法 get set型属性
2.成员访问

 var p={
         name:"modao",
         work:function(){
             console.log("working...");
         },
         _age:18,
         get age(){
             return this._age;
         },
         set age(val){
             if(val<0 || val>150){
                 throw new Error("invalid value");
             }else{
                this._age=val;
             }
             
         },
         address:{
             home:"lanjia",
             office:"shufang"

         }

     };
     console.log(p.name);

在这里插入图片描述
在这里插入图片描述
3.Object
Object.defineProperty定义与修改属性
Object.defineProperties
在这里插入图片描述

 //get set writable enumerable configurable value
     Object.defineProperties(p,{
         salary:{
             value:1000,
             writable:true
         },
         gender:{
             value:0,
             writable:false
         },
          height:{
             get:function(){
                 return 180
             },
             set:function(val){
                 console.log(val);
             }
         }

     })

在这里插入图片描述

对象的基本操作
1.成员的遍历

无序
在这里插入图片描述
有序
在这里插入图片描述

2.检查对象是否有某个属性
在这里插入图片描述
3.成员的删除(有些属性不能删除)
在这里插入图片描述

成员特性(annotation)
在这里插入图片描述
constructor
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类型检测
1.typeof
2.instanceof(对象是否是某个构造器的实例)
在这里插入图片描述
在这里插入图片描述
对象工厂

function PersonFactory(pname,page){
        return{
            name:pname,
            age:page
        };
    }
    var p1=PersonFactory("weiwuxian",22);
    var p2=PersonFactory("lanwangji",23);

缺点:相同的属性和值占空间
解决方法:prototype(只用函数有propotype)

function Person(){
        var age=30;
        this.age=22;
        this.name="weiwuxian"
    }

    Person.prototype.nationality="China";
    var p=new Person();
    var p1=new Person();

在这里插入图片描述

构造器函数

 function Person(){
        var age=30;
    }
    var p=new Person();

在这里插入图片描述

function Person(){
        var age=30;
        this.age=22;
        this.name="weiwuxian"
    }
    var p=new Person();

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值