美文网首页JS的学习
类和对象进阶

类和对象进阶

作者: wy22 | 来源:发表于2021-12-04 08:36 被阅读0次

 值类型和引用类型

// 值类型:string,number,boolean

        let num1 = 100

        let num2 = num1  //num2的值由num1传入

        console.log(`num1=${num1},num2=${num2}`);

        num2 = 200   //num2的值重新修改后,num1不受影响

        console.log(`num1=${num1},num2=${num2}`);

        console.log('--------------------------------------');

        // 引用类型:数组,对象

        let obj1 = {

            name:'张杰',

            age:20,

            sex:'男'

        }

        // 将obj1传给obj2,其实传的是obj1的地址

        let obj2 = obj1

        console.log('obj1',obj1);

        console.log('obj2',obj2);

        console.log('------');

    //修改obj2的属性值,obj1也会发生变化,因为obj1和obj2的地址是一样的。

   // 值类型在调用方法传递是,传的是值

  //数组是引用类型

原型对象

  // 构造函数(类)有原型对象,其实就是构造函数身上的一个自带属性,这个属性是:prototype

        // 对象也有原型对象,其实就是对象身上的一个自带属性,这个属性是:__proto__

        // 所有同类型的对象身上的原型对象属性,都指向类的原型对象属性。

        // 类和对象的原型对象身上挂的方法,对象可以直接使用,不需要经过原型对象。

        function Student(name,age,sex){

            this.name = name

            this.age = age

            this.sex = sex

            // 如果将方法直接定义在类里面,将来根据这个类创建的每个对象,都要创建自己独立的这些方法

            // 如果要创建很多对象,对内存的开销会很大。

            /* this.sayHi = function(){

                console.log(`Hi!我叫${this.name},今年${this.age}岁,性别是${this.sex}`);

            }

            this.study = function(time){

                console.log(`Hi!我叫${this.name},我每天学习${time}小时`);

            }

            this.play = function(time){

                console.log(`Hi!我叫${this.name},我每天玩${time}小时`);

            } */

        }

        // 我们可以将类的方法,添加到类的原型对象身上

        Student.prototype.sayHi = function(){

            console.log(`Hi!我叫${this.name},今年${this.age}岁,性别是${this.sex}`);

        }

        Student.prototype.study = function(time){

            console.log(`Hi!我叫${this.name},我每天学习${time}小时`);

        }

        Student.prototype.play = function(time){

            console.log(`Hi!我叫${this.name},我每天玩${time}小时`);

        }

        let s1 = new Student('张三',20,'男')

        let s2 = new Student('李四',22,'女')

        let s3 = new Student('王五',24,'男')

        // 查了Student类的原型对象

        // console.log(Student.prototype);

        // 查看三个对象的原型对象 -- 你会发现,长得一样。

        // console.log(s1.__proto__);

        // console.log(s2.__proto__);

        // console.log(s3.__proto__);

        s1.sayHi()

        s1.study(8)

        s1.play(3)

相关文章

  • 类和对象进阶

    值类型和引用类型 // 值类型:string,number,boolean let num1 = 100 ...

  • 类和对象进阶

    一、构造函数 构造函数的作用 构造函数是类中的特殊成员函数,它属于类的一部分。给出类定义时,由程序员编写构造函数。...

  • Python进阶:类和对象

    .面向对象 (OOP) 面向过程:顺序执行,只有执行,没有返回值,特点是侧重怎么做,就是在主程序中调用不同的函数,...

  • 三、类和对象进阶

    构造函数 变量初始化全局变量如果程序员在声明变量时没有进行初始化,则系统自动为其初始化为0。这个工作在程序启动时完...

  • Python面向对象进阶

    Python 面向对象(进阶篇) 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用类 是一个...

  • python进阶:面向对象是什么意思?

    python是一门面向对象的语言,体现面向对象的技术就是类。想要在python编程上进阶,就必须理解和运用类来解决...

  • [5] - 类和对象之进阶(一)

    继承 只能有一个父类 与其他支持面向对象的语言一样,Scala 也支持继承,并且子类只能有一个父类,不能继承于多个...

  • [6] - 类和对象之进阶(二)

    Scala 中的可见性非常灵活且复杂,这篇文章希望通过大量的示例来说清楚各种情况下的可见性是怎么样的。 默认可见性...

  • Python面向对象之访问控制!

    回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,...

  • 对象、类对象和元类对象

    http://www.tuicool.com/articles/mmyuUr http://blog.csdn.n...

网友评论

    本文标题:类和对象进阶

    本文链接:https://www.haomeiwen.com/subject/qtudxrtx.html