js-面向对象

面向对象
          对象:现实中一切事物都叫做对象
          面向对象的实体:包含属性和行为的集合
          js没有类的概念,叫做对象,思想上是基于对象,js下定义对象还是用函数体定义。
          基于对象和面向对象的区别:
           面向对象:自己设置图纸,照着图纸盖房子
           基于对象:别人有一个房子,我照着房子创建
          面向对象的三大特征:

                         1.封装:每一个对象就是一个封装,把具有共同属性和行为的事务放在一起
                         2.继承
                         3.多态
          封装:每一个对象就是一个封装,把具有共同属性和行为的事务放在一起
          定义对象
            1.通过Object创建
             var p=new Object()
             p.name="小米"//创建变量
             p.age=23
             p.name="小民"
             p.say=function (){//创建方法
             console.log(p.name ,p.age)
             }
             console.log(p)
             p.say()//调用方法
            2.简写
              var p={
              name:"小米",
              age:22,
              say:function(){
              console.log(this.name,this.age)//this表示对象是谁
              }
              }
              p.say()
          属性操作
            configurable 是否可以通过delete删除
            enumerable  是否可以通过forin进行遍历
            writable        是否可以通过修改属性
            value        给属性添加默认值
            get           获取属性的方法
            set           设置属性的方法
            思想:限定陌生人不能操作,但是我自己可以get/set方法访问
            限定属性: var obj={name:"小米",age:22}
                       //对象的属限定
                       Object.defineProperty(obj,"name",{
                       configurable:false,
                       writable:false,
                          value:"小蓝"
                    })
            设置get和set
                      var {_name:"小米",age:22}
                      Object.defineProperty(obj,"name",{
                        get:function(){//获取变量
                            return this._name
                        },
                        set:function(name){//修改变量
                           this._name=name
                        }
                        })
            设置多个属性
                       var obj={name:"小米",age:22}
                       Object.defineProperty(obj,{
                         name:{writable:false,},
                         age:{enumerable:false}
                        })
    自己创建get和set方法
                 var obj={
                          name:"小明",
                           getName:function(){return this.name},
                           setName:function(name){this.name=name},
                         } 
                 console.log(obj.getName())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孙璐_iLu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值