JS 11——①什么是对象、类?②如何创建对象?③对象创建好了之后,如何使用?④“构造函数”怎么做?⑤学习“实例方法”与“静态方法”⑥typeof和instanceof分别是干什么用的?

1、对象 与 类

在这里插入图片描述

类:
人类:
男人 幼年 老年 中年
女人

对象:
万事万物皆是对象
李某某 人(李某某是人类的一个实例)
红米手机 是手机类型中一个实例

在这里插入图片描述

对象的 静态特征(属性), 例如:
①眼睛:
②身高
③体重
对象的 行为(方法),例如:
①吃饭
②睡觉
③跑步
④化妆
⑤说话
⑥打人

3、js中包含哪些类型的对象

  1. 内置对象(Math,Number,Date)
  2. 宿主对象(dom,bom)
  3. 自定义对象:开发人员自己定义的对象

4、如何创建对象(4种方法)?

创建好了之后,如何调用(3种方法)?

创建对象的4种方法:

//  创建对象方法1:
        var obj1 = {
            name: '林冰冰',
            't age': 37,
            tall: 168,
            sing: function () {
                document.write('唱歌')
            }
        }
       
 //  创建对象方法2:
        var obj2 = {}
        obj2.name = 'xiaobai'
        obj2.color = '白色'
        obj2.age = '3'
 //  创建对象方法3:
        var obj3 = new Object()
        obj3.name = '联想拯救者'
 //  创建对象方法4:
        let obj4 = Object.create(null)
        obj4.name = '唐唐'

调用对象属性和方法的3种方式:

        //调用对象的属性和行为 写法1(属性):
         alert( obj1.name)
        //调用对象的属性和行为 写法2(行为):
        obj1.sing()
        //调用对象的属性和行为 写法3(属性),适用于属性名中带空格呀这种的不好表示的:
        alert(obj1['t age'])
        

5、“构造函数” 怎么做?(名字就叫做“构造函数”)

第一步:用“构造函数” 创建类型
第二步:创建实例

  let obj3={
            name:'林潇',
            't age':18,
        }


        //构造函数  注意:单词首字母大写
        function Actor(name,age){
           //this: 当前对象的引用(地址)(看到这个this,你就得默默和底下创建的那个实例联系起来,这些前后关联心里要有数。)
            this.name=name;
            this['t age']=age;
        }
       //创建一个演员的实例(其实这也是为了和上面的this相呼应,所以这就是为什么第一步先创建构造函数,第二步就得创建实例了)
        let obj4 = new Actor('丁娃',5)
        alert(obj4['t age'])
        alert(obj4['name'])

        //instanceof判断一个对象 是不是 某个类型的实例 如果是则返回true,不是则返回false
        alert(obj4 instanceof Actor)//obj4肯定是Actor的实例,因为上一行写了let obj4 = new Actor('丁娃',5)的,而底下那个obj3 肯定不是 Actor类型的实例,因为它没用let obj3 = new Actor()这种固定格式写。
        alert(obj3 instanceof Actor)//我们还想试一试,看看别的实例是不是Actor类型的实例,在这里我们假装用个obj3实例测试一下,关于obj3的东西,我们在一开始最上面,已经提前写好了。

6、学习“实例方法”与“静态方法”:

(1)实例方法:使用实例方法的步骤:先写构造函数,再创建对象,再写实例方法,再调用函数

 <script>
        //学习“实例方法”:(使用实例方法的步骤:先写构造函数,再创建对象,再写实例方法,再调用函数)
       
        //如果我们想要定义一个"车票"的对象,
        //说明"车票"是一个类型
        //用“构造函数”创建类型(下面这段代码是步骤1)
        //构造函数里面,只能写属性,不能再写方法,要写方法需要在构造函数外面用protype写
        function Ticket(name,id){
            this.width=18;
            this.height=10;
            this.color='蓝色';
            this.name=name;
            this.id=id;
            //构造函数里面,只能写属性,不能既写了属性又再写方法,要写方法需要在构造函数外面写,把方法攒到外边写,我们就需要把this换成Ticket.prototype,在外边就不能再用this了,不然你程序不知道你写的那个this是谁。所以我们一开始在这里写的方法,现在就要被注释掉了,咱们把它攒到外边去,攒到外边我们用protype写
            // this.zhedie=function(){
            //     alert('通过外力可以折叠')
            // }
        }
        
        //注意:由于我们在底下已经创建了2个实例,所以这里我们写的这个方法就叫做 定义在Ticket类型实例上的方法
        //既然是实例方法,那它的前提就得是要有实例作为依托,所以我们在底下先创建了两个实例。
        //(下面这里是步骤3)
        //实例方法:
        Ticket.prototype.zhedie=function(){
            alert('通过外力可以折叠')
        }
        //第一步的 构造函数写完之后,就该创建对象(所以下面这里是步骤2)
        let myticket=new Ticket('张三','819171617')
        let myticket1=new Ticket('李四','16786435788')
        
        //(下面这里是步骤4)
        myticket.zhedie()
        

    </script>

(2)静态方法:比如下面这段代码,我们Ticket类型有个属性叫run,这个属性的值刚好是个函数,我们不用创建Ticket 的实例,也可以直接调用这个函数,这种我们称之为静态方法

<script>
         function Ticket(name,id){
            this.width=18;
            this.height=10;
            this.color='蓝色';
            this.name=name;
            this.id=id;
        }
        //这里我们学习静态方法,和上面的那个实例方法不一样
        //静态方法:
        //比如这里,我们Ticket类型有个属性叫run,这个属性的值刚好是个函数,我们不用创建Ticket 的实例,也可以直接调用这个函数,这种我们称之为静态方法
        Ticket.run=function(){
            alert('running')
        }
        Ticket.run()

    </script>

一个类型身上,既可以有实例方法,也可以有静态方法。实例方法就必须要有实例作为依托(上面的代码1中就是很好的说明,在构造函数完了之后,第二步就是创建对象,第三步才写实例方法);而静态方法不用依托任何人,在构造函数写完之后,直接用类型写静态方法,然后这个方法直接就可以被调用,全过程不用依托任何人。
生活当中,静态方法的情况比较少见。所以当你看见new了一个实例的时候,那么那段代码里面用的,一定是实例方法。
今天我们学习的“实例方法”,它的代码和思想,和上面第5个知识点“‘构造函数’ 怎么做?”的代码,在前面部分是一模一样的,都是一样的写法流程。注意联系起来看,感悟有些写法。

7、typeofinstanceof分别是干什么用的?

typeof 是用来判断“类型”的
instanceof 是用来判断 “某实例是不是某个类型的实例”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值