返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript的面向对象编程一起来看看
  • 295
分享到

javascript的面向对象编程一起来看看

2024-04-02 19:04:59 295人浏览 薄情痞子
摘要

目录函数的定义和使用this指向问题严格模式高阶函数闭包递归正则表达式es6总结年后来工作的我,be like: 而且刷微博刷着刷着也会遇到一群说出我心中所想的话: 呜呜呜~~(

年后来工作的我,be like:

而且刷微博刷着刷着也会遇到一群说出我心中所想的话

呜呜呜~~(我是分割线)~~

好啦,不管怎样生活总还是要继续的! 

 在年后的这些天里我一边炫沙糖桔一边也开始陆陆续续开始重新投入学习,主要学习的是面向编程对象

同样先放上一张学习框架图

函数的定义和使用

这一板块的内容主要是对之前Jquery的复习,复习了:函数的定义方法、函数的调用方法。(在这我就不做过多的赘述)

this指向问题

这一模块的内容主要是学习不同函数中this指向的对象是谁、改变函数内部this的指向方法:callapplybind

改变函数内部this的指向方法:callapplybind

这三个方法共同点:都能改变this的指向;

这三个方法不同点:

  • call和apply会调用函数,并且改变函数内部this指向;
  • call和apply传递的参数不一样,call传递参数使用逗号隔开,apply使用数组传递;
  • bind不会调用函数,可以改变函数内部this指向。

严格模式

这一模块的内容主要是学习了解什么是严格模式。

严格模式定义:ES5 的严格模式是采用具有限制性 javascript变体的一种方式,即在严格的条件下运行 js 代码。(严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。)

开启严格模式

  • 为脚本开启严格模式;
  • 为函数开启严格模式。

高阶函数

这一模块的内容主要是学习高阶函数的定义与相关应用。

高阶函数定义:高阶函数是对其他函数进行操作的函数,它接收函数作为参数或将函数作为返回值输出。

最好理解的就是回调函数,它就是高阶函数。

闭包

这一模块的内容主要是学习闭包的定义、闭包的作用、闭包的运用。

闭包定义:闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解就是 ,一个作用域可以访问另外一个函数内部的局部变量。

闭包作用:延申了变量的作用范围。

闭包的运用:

点击li打印当前索引

<body>
    <ul class='nav'>
        <li>榴莲</li>
        <li>臭豆腐</li>
        <li>鲱鱼罐头</li>
        <li>大猪蹄子</li>
    </ul>
</body>
<script>
    // 原始获得索引号的方法
    var lis = document.querySelector(".nav").querySelectorAll("li");
    for (var i = 0; i < lis.length; i++) {
        lis[i].index = i;
        lis[i].onclick = function() {
 
            console.log(this.index);
        }
    }
 
    // 闭包的定义:指有权访问另一个函数作用域中变量的函数。简单理解就是 ,一个作用域可以访问另外一个函数内部的局部变量。 
 
    // 需求:利用闭包来得到li的索引号
    var lis = document.querySelector(".nav").querySelectorAll("li");
 
    for (var i = 0; i < lis.length; i++) {
        (function(i) {
            // console.log(i);
            lis[i].onclick = function() {
                console.log(i); //我们为了点击时才会出现i
            }
        })(i);
    }
</script>

3s后打印li里面的内容

<body>
    <ul class='nav'>
        <li>榴莲</li>
        <li>臭豆腐</li>
        <li>鲱鱼罐头</li>
        <li>大猪蹄子</li>
    </ul>
 
</body>
<script>
    // 利用闭包来得到li的索引号
    var lis = document.querySelector(".nav").querySelectorAll("li");
 
    for (var i = 0; i < lis.length; i++) {
        (function(i) { //这是立即执行函数
            // 简单来说就是把定时器放在立即执行函数里面
            setTimeout(function() { //在立即执行函数里的任何一个函数都可以调用立即执行函数里的变量
                console.log(lis[i].innerhtml);
            }, 2000)
        })(i);
    }
</script>

打车价格的计算应用

 <!-- 需求:打车起步价13(3公里内),  之后每多一公里增加 5块钱.  用户输入公里数就可以计算打车价格
如果有拥堵情况,总价格多收取10块钱拥堵费 -->
<script>
    var car = (function() { //立即执行函数
        var start = 13; //起步价
        var total = 0; //总价
        return {
            price: function(n) {
                if (n <= 3) {
                    total = start;
                } else {
                    total = start + (n - 3) * 5;
                }
                return total;
            },
            yd: function(flag) {
                    return flag ? total + 10 : total;
                } //拥堵的费用
        }
    })();
    car.price();
    console.log(car.price(5));
    console.log(car.yd(true));
</script>

递归

这一模块的内容主要是学习递归的定义、递归的运用。

递归的定义:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数。

注意:递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return

递归的运用:

求1~n的阶乘

<script>
    function fn(n) {
        if (n == 1) {
            return 1; //判断条件来退出
        }
        return n * fn(n - 1); //思路:前一项*后一项
        // 利用return来调用函数本身
    };
    // fn(); //递归类似于循环;自己调用自己
    console.log(fn(4));
</script>

求斐波那契数列

 <script>
        // 1、1、2、3、5、8、13、21...当用户输入n的值来得到在斐波那契数列中的值
 
        function fb(n) {
            if (n === 0 || n === 1 || n === 2) {
                return 1;
            } else {
                return fb(n - 1) + fb(n - 2); //规律:当用户输入n我们得到(n-1)和(n-2)这两项就能计算出n、对应的序列值
            }
 
        }
        console.log(fb(0));
        console.log(fb(4));
    </script>

递归遍历数据

&lt;script&gt;    var data = [{        id: 1,        name: '家电',        Goods: [{            id: 11,            gname: '冰箱'        }, {            id: 12,            gname: '洗衣机'        }]    }, {        id: 2,        name: '服饰'    }];    // 效果:我们想要输入id号就可以返回的数据对象(利用递归来遍历)    // 1.利用forEach 去遍历里面的每一个对象    function getID(JSON, id) { //json就是一整个大的数组        json.forEach(function(item) { //item就是data里面的id            if (item.id == id) {                console.log(item);                //             } else if (item.goods &amp;&amp; item.goods.length &gt; 0) {                // 2.遍历对象里面的对象11 12 可以利用递归函数(调用自己getID(对象里面的对象item.goods,id))                // 里面应该有goods这个数组并且数组的长度不为0                getID(item.goods, id);            }        });    }    getID(data, 1);    getID(data, 2);    getID(data, 11);&lt;/script&gt;

正则表达式

这一模块的内容主要是学习正则表达式定义、正则表达式在js中的使用。(该模块需要查阅文本来使用)

学习框架如下:

ES6

这一模块的内容主要是学习ES6新增语法、ES6内置对象拓展。

ES6新增语法框架:

ES6内置对象拓展框架:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!   

--结束END--

本文标题: javascript的面向对象编程一起来看看

本文链接: https://lsjlt.com/news/139269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • javascript的面向对象编程一起来看看
    目录函数的定义和使用this指向问题严格模式高阶函数闭包递归正则表达式ES6总结年后来工作的我,be like: 而且刷微博刷着刷着也会遇到一群说出我心中所想的话: 呜呜呜~~(...
    99+
    2024-04-02
  • 一起来了解JavaScript面向对象
    目录JavaScript原型链Object的原型顶层原型创建Object对象的内存图Object是所有类的父类原型链实现继承借用构造函数实现继承总结JavaScript原型链 每一个...
    99+
    2024-04-02
  • 一起再看JavaScript中的对象解构
    解构是一个概念,分解其中一种数据类型并将其单独的属性分配给变量,在文章《JavaScript 解构赋值 5 个常见场景和实例》中介绍过,今天再来复习一下。基础解构const fullName = { firstName: "...
    99+
    2023-05-14
    JavaScript ECMAScript 6 Vue.js
  • Python基础:一起来面向对象 (二)
    实例 搜索引擎   一个搜索引擎由搜索器、索引器、检索器和用户接口四个部分组成   搜索器就是爬虫(scrawler),爬出的内容送给索引器生成索引(Index)存储在内部数据库。用户通过用户接口发出询问(query),询问解析后送达检索...
    99+
    2023-01-31
    面向对象 基础 Python
  • 一起来看看js对象和事件的学习笔记
    目录1.内置对象2.对象2.1 对象的创建2.1.1字面量形式创建2.1.2new object 创建2.1.3object对象的create方法3.对象的序列化和反序列化4.thi...
    99+
    2024-04-02
  • Python面向对象编程(一)
    目录一、程序中定义类和对象1、 定义类2、 定义对象二、定制对象独有特征1、引入2、定制对象独有特征3、对象属性查找顺序4、类定义阶段定制属性三、对象的绑定方法1、类使用对象的绑定对...
    99+
    2024-04-02
  • Python面向对象编程 一
    一、类    面向对象是对函数进行分类和封装,其主要目的是提高程序的重复实用性,让开发更方便快捷。    在我们的认知中,我们会根据属性相近的东西归为一类。例如:鱼类,鱼类的共同属性是呼吸,卵生。任何一个鱼都在此鱼类基础上创建的。    定...
    99+
    2023-01-31
    面向对象 Python
  • 一起来看看JavaScript数据类型最详解
    目录01-变量的数据类型02-简单数据类型之数字型Number03-isNaN04-简单数据类型之字符串型05-转义符案例-弹出网页警示框06-字符串拼接07-字符串拼接加强08-显...
    99+
    2024-04-02
  • JavaScript面向对象编程详细讲解
    这篇文章主要介绍“JavaScript面向对象编程详细讲解”,在日常操作中,相信很多人在JavaScript面向对象编程详细讲解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • JavaScript面向对象编程实现模拟
    目录前言1. 构造函数2. new的过程2.1 基础使用2.2 new.target3. 手动实现一个构造函数前言 每个对象都是一个功能中心,具有明确分工,可以处理信息,处理信息,发...
    99+
    2022-11-13
    JavaScript面向对象 JavaScript OOP
  • PHP面向对象编程:面向接口编程
    dip 是一种设计模式,通过创建依赖于接口而非具体实现的类来实现松耦合和易维护。好处包括灵活性、可测试性和可扩展性。要实现 dip,请定义接口、创建实现接口的类,并将接口作为依赖项传递给...
    99+
    2024-05-10
    php 面向对象 php面向对象编程
  • PHP面向对象编程:面向事务编程
    事务编程是一种设计模式,用于同时操作多个资源,如果任何操作失败,则自动回滚所有更改,确保数据一致性。在 php 中,使用 pdo 类进行事务编程,通过 pdo::begintransac...
    99+
    2024-05-11
    php 面向对象编程 mysql php面向对象编程
  • Java 和 JavaScript:哪一个更适合面向对象编程?
    Java 和 JavaScript 都是非常流行的编程语言,它们都支持面向对象编程(OOP)。然而,这两种语言在实现 OOP 方面有很大的差异。本文将探讨 Java 和 JavaScript 在 OOP 方面的异同,并讨论哪一个更适合面向...
    99+
    2023-09-22
    javascript 对象 laravel
  • Vue的生命周期一起来看看
    目录1. 生命周期(重要)1.1 初步认识生命周期1.2 生命周期流程(8个)1.3 生命周期详细流程图1.4 常用的生命周期钩子:1.4.1 关于销毁1.4.2 关于父子组件的生命...
    99+
    2024-04-02
  • Java的反射机制一起来看看
    目录一、什么是反射机制?获得Class类对象的三种方式:二、Class类三、Package类四、Field类五、Method类六、Constructor类总结一、什么是反射机制? 反...
    99+
    2024-04-02
  • PLSQL面向对象编程
    面向对象编程简称OOP编程,实际上是对现实世界事物的一种抽象的过程。它的核心是把对象的定义和实现进行区分,让定义部分对象所具有的结构,让实现部分根据定义部分定义的具体结构进行具体的实现。用于生产玩具的模具叫...
    99+
    2024-04-02
  • python 面向对象编程
    文章目录 前言如何理解面向对象编程在 python 中如何使用面向对象编程定义类创建对象self添加和获取对象属性添加属性类外添加属性类中添加属性 访问属性类外访问属性类中访问属性 ...
    99+
    2023-08-31
    python 开发语言
  • python_面向对象编程
    初始面向对象 一、类的实例化: 调用类产生对象的过程称为类的实例化, 实例化的结果是一个对象,或称为一个实例 class People: def __init__(self, name, age, sex)...
    99+
    2023-01-30
    面向对象
  • Python面向对象编程
      面向对象最重要的概念就是类(Class)和实例(Instance),Java比较熟了,下面贴代码注释   class Student(object): def __init__(self, name, score): ...
    99+
    2023-01-30
    面向对象 Python
  • Python-面向对象编程
    面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,比如人类、动物类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 以人类为例,创建一个实例为 xiaomi...
    99+
    2023-01-31
    面向对象 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作