JS高级—面向对象

本文详细探讨了JavaScript的面向对象编程,包括对象、面向对象与面向过程的区别、构造函数、原型对象及其原型链。通过实例解释了如何创建和使用对象,以及如何利用原型解决内存浪费问题。还讨论了内置构造函数和面向过程与面向对象思维在实践中的应用。
摘要由CSDN通过智能技术生成

面向对象

概念
对象
  • 万物皆对象,单个事物的抽象
  • 对象是一个容器,封装了属性(property对象的状态)和方法(method对象的行为)
面向对象
  • 面向对象编程(Object Oriented Programming),是一种编程开发思想
  • 将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟
  • 特性
  • 封装性
  • 继承性
  • [多态性]抽象
面向过程
  • 亲力亲为,事无巨细,面面俱到,步步紧跟,有条不紊
实际区分面向对象和面过程

打印学生成绩

  • 面向过程,定义学生对象,然后封装一个打印学生成绩函数,调用函数传参打印对应成绩
  • 面向对象
    • 首先考虑的不是整个流程,而是将一个学生当作一个对象,对象有相应的属性,并且每个对象有自己的方法
    • 利用构造函数进行封装,创建单独的对象,抽象所有的数据行为成一个模板Class
    • 根据模板创建具体的实例对象(Instance)
    • 调用实例对象自己的方法
创建对象
  • new Object()构造函数

      //简单方式new Object()
            var person = new Object();
            person.name = "Bob";
            person.age = 18;
            person.sayname = function() {
                console.log(this.name);
            };
            person.sayname(); //调用对象内部函数
    
  • 对象字面量{ }

     // 字面量
            var person = {
                name: "Bob",
                age: 18,
                sayname: function() {
                    console.log(this.name);
                }
            };
            person.sayname();
    
  • 工厂函数

     // 工厂函数
            function creatperson(name, age) {
                // 添加一个空对象
                return {
                    name: name,
                    age: age,
                    sayname: function() {
                        console.log(this.name);
                    }
                }
            }
            var person1 = creatperson("Bob", 17);
            perso
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值