ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript学习笔记08(面对对象)

2021-12-01 13:31:49  阅读:143  来源: 互联网

标签:console log 08 javascript 笔记 jn var dt2 Math


编程思想:把生活中做事的一些经验融入到程序中

面向过程:凡事亲力亲为,注重的是过程。

面向对象:根据需求找对象,所有事情对象来做,注重的是结果

面向对象的特性:封装、继承、多态(抽象性)

JavaScript不是面向对象的语言,是基于面向对象的语言,可以看成是可以模拟面向对象的思想

万物皆对象 ---> js高级

什么是对象?看得见、摸得着,具体所指的某个东西

分析对象的特点:

特征 ---> 属性

行为 ---> 方法

创建对象的三种方法:

        --  调用系统的构造函数来创建对象

                var obj = new Object();

                - 添加/设置属性:对象.属性名 = 值;

                - 添加/设置方法:对象.方法名 = 匿名函数;

                数据存储形式:键值对

        var ojb = new Object()
        ojb.name = '小明';
        ojb.age = 19;
        ojb.jn = function(){
            console.log("我是" + ojb.name + "我" + ojb.age + "岁")
        }
        console.log(ojb);   
        ojb.jn()

     

        --  自定义构造函数创建对象

                自己定义一个构造函数

                函数和构造函数的区别:构造函数的名字首字母大写

        function Dx(name, age){
            this.name = name,
            this.age = age,
            this.jn = function (){
                console.log("我是" + this.name + "我" + this.age + "岁")
            }
        }
        var cl = new Dx("小明",19);
        console.log(cl)
        cl.jn();

        --  以字面量的方式创建对象(两种方法)

             方法一:

        var cl = {};
        cl.name = "小明";
        cl.age = 19;
        cl.jn = function(){
            console.log("我是" + this.name + "我" + this.age + "岁")
        }
        console.log(cl);
        cl.jn();

                方法二:

        var cl = {
            name : "小明",
            age : "19",
            jn : function(){
                console.log("我是" + this.name + "我" + this.age + "岁")
            }
        }
        console.log(cl)
        cl.jn();

上述代码结果都为:

工厂模式创建对象

有一种结合上述方法的方式可以用来工厂化批量创建对象

        function dog(color, breed, age, jn){
            var obj = new Object();
            obj.color = color,
            obj.breed = breed,
            obj.age = age,
            obj.jn = function(){
                console.log(jn);
            };
            return obj;
        }
        mao1 = new mao("红色", "哈士奇", 2 , "抓鱼");
        mao2 = new mao("黄色", "金毛", 5, "睡觉");
        console.log(mao1);
        console.log(mao2);
        mao1.jn();
        mao2.jn()

JavaScript学习的三种对象:

1.内置对象---JavaScript系统自带的对象:Math、Date、String、Array、Object

2.自定义对象---自己定义的构造函数所创建的对象

3.浏览器对象

实例对象:通过构造函数创建出来的对象

静态对象:不需要创建,直接就是一个对象,方法/属性可以直接通过方法名调用

Math对象:静态对象

            - Math.PI 圆周率π

            - Math.floor(值) 向下取整

            - Math.ceil(值) 向上取整

            - Math.abs(值) 绝对值

            - Math.round(值) 四舍五入,正数四舍五入,负数先忽略符号,五舍六入

            - Math.max(很多数字) 取最大值

            - Math.min(很多数字) 取最小值

            - Math.pow(m, n) m的n次方的值

            - Math.sqrt(16) 开平方根

            - Math.random() 取随机数,区间0-1

Date对象

        // 创建指定时间
        var dt = new Date("2011-11-30 20:42:12");
        console.log(dt);

        // 获取当前时间,创建一个实例对象
        var dt2 = new Date();
        console.log(dt2);

        // 获取毫秒数,1秒=1000毫秒(时间戳)
        // dt2实例对象调用getTime()方法获取时间戳
        console.log(dt2.getTime());// 从1970-01-01-00:00:00到现在的毫秒数
        // 直接调用Date的now()方法获取时间戳
        console.log(Date.now());
        // 利用valueOf()方法的特性<返回给定参数的Number对象值>获取时间戳
        console.log(dt2.valueOf());

        // 年份
        console.log(dt2.getFullYear());// 2021
        // 月份
        console.log(dt2.getMonth() + 1);// 10  从0开始0-11 所以要加1
        // 日期
        console.log(dt2.getDate());// 30
        // 星期
        console.log(dt2.getDay());
        // 时分秒
        console.log(dt2.getHours());
        console.log(dt2.getMinutes());
        console.log(dt2.getSeconds());

        console.log(dt2.toTimeString());// 时:分:秒 GMT+0800 (中国标准时间)
        console.log(dt2.toLocaleTimeString());// 12小时制的时分秒

        console.log(dt2.toDateString());// 英文日期
        console.log(dt2.toLocaleDateString());// 年/月/日

可以通过上次方法自己封装一个自己想要的样式的时间表达

        function getDate(dt) {
            var year = dt.getFullYear();
            var month = dt.getMonth() + 1;
            var date = dt.getDate();
            var hours = dt.getHours();
            var minutes = dt.getMinutes();
            var seconds = dt.getSeconds();

            // 补位
            // month = month < 10 ? "0" + month : month;
            // date = date < 10 ? "0" + date : date;
            // hours = hours < 10 ? "0" + hours : hours;
            // minutes = minutes < 10 ? "0" + minutes : minutes;
            // seconds = seconds < 10 ? "0" + seconds : seconds;

            function bu(i) {
                return i = i < 10 ? "0" + i : i;
            }

            var str = year + "年" + bu(month) + '月' + bu(date) + "日" + bu(hours) + ":" + bu(minutes) + ":" + bu(seconds);
            return str;
        }

        // console.log(getDate(new Date()));
        console.log(getDate(new Date("2022-01-01 00:00:00")));

以下是一个自定义对象,模拟实现系统的Math.max()方法

        function MyMax() {
            // 获取最大值的方法
            this.getMax = function() {
                var max = arguments[0];
                for(var i = 0; i < arguments.length; i++) {
                    if(max < arguments[i]) {
                        max = arguments[i];
                    }
                }
                return max;
            }
        }

        var math = new MyMax();
        console.log(math.getMax(1, 49, 888, 27, 75, 66));

标签:console,log,08,javascript,笔记,jn,var,dt2,Math
来源: https://blog.csdn.net/qq_53107845/article/details/121653015

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有