OOP----面向对象的组成,特点,创建方法

本文详细探讨了面向对象编程在JavaScript中的应用,包括概念、三大特点(封装、继承、多态)、this指向的掌握、常见对象创建方法(Object、JSON、工厂模式、构造函数和原型)。重点讲解了如何通过原型链实现继承,并演示了反转字符串和继承功能的实例。
摘要由CSDN通过智能技术生成

1.面向对象的概念

在这里插入图片描述

2.面向对象的三大特点

在这里插入图片描述

3.面向对象的组成

在这里插入图片描述

重点难点:this该方法的指向

4. js中常见对象

在这里插入图片描述

5.怎么写对象(创建方法)

1 使用Object

在这里插入图片描述

// 1.Object
     var mzb =new Object();
     mzb.name='穆本';
     mzb.nick='本本';
     mzb.skill=function(){
        console.log('lallalala');
     }
2 字面量创建 / json

在这里插入图片描述

// 2.json创建
    var wwx={
        name:'王文轩',
        age:5,
        skill:function(){
            console.log('lallalalal');
        }
    }
3 工厂方式
// 3.工厂模式
    function createPerson(name,qq){
        var obj=new Object();
    }

4 构造函数*(推荐)

在这里插入图片描述

// 4.构造函数
    function Book(name,author,price,type){
        this.name=name;
        this.author=author;
        this.price=price;
        this.type=type;
    }
    Book();
    var shz=new Book("水浒传","施耐庵","56","小说");
5.原型(重要)

在这里插入图片描述

// 建议: 方法及公用属性写在原型中
// 原型需要用构造函数名调用
// 原型的本质是个对象

// 原型链
    function Dog(type, name, age) {
        this.type = type;
        this.name = name;
        this.age = age;
    }
    Dog.prototype.skill = function() {
        console.log('拆家');
    }

    function Cat(kindle, nick) {
        this.tykindlepe = kindle;
        this.nick = nick;
    }
    Cat.prototype = new Dog('金毛', '疙瘩', 2);

    var cat = new Cat('橘猫', '啊桔');

    cat.skill();

6.三大特性

在这里插入图片描述
反转字符串
function reverseString(string) {
return string.split(‘’).reverse().join(‘’)
}

改良版:(更高级)
String.prototype.reverseString = function() {
return this.split(‘’).reverse().join(‘’);
}

继承

    function Animal(nick, age) {
        this.nick = nick;
        this.age = age;
    }
    Animal.prototype.skill = function() {
        console.log('觅食')
    }

    function Dog(nick, age, type) {
        // this.nick = nick;
        // this.age = age;
        Animal.call(this, nick, age);
        Animal.apply(this, [nick, age]);
        this.type = type;
    }
    // 我们使用call和apply方式实现构造函数的继承
    // call与apply作用:改变this指向

    // 浅拷贝,不能这么写,容易对父级的原型进行修改
    // Dog.prototype = Animal.prototype;
    // 推荐使用就for in
    for (var x in Animal.prototype) {
        Dog.prototype[x] = Animal.prototype[x]
    }

    Dog.prototype.jump = function() {
        console.log("jump");
    }

    var d = new Dog('dd', 6, '柯基');
    d.skill();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值