美文网首页菜鸟前端工程师我爱编程程序员
JavaScript学习笔记023-对象方法0包装对象0静态属性

JavaScript学习笔记023-对象方法0包装对象0静态属性

作者: Mr柳上原 | 来源:发表于2018-09-04 15:49 被阅读0次

    Author:Mr.柳上原

    • 付出不亚于任何的努力
    • 愿我们所有的努力,都不会被生活辜负
    • 不忘初心,方得始终

    时间过得真快

    转瞬即逝

    曾经以为过不去的坎

    现在都快要遗忘了

    岁月是把杀猪刀

    果然

    如此

    前端也学了大半年了

    距离node结课近在咫尺

    又是一期课程毕业在即

    愿我们所有的努力

    都不会被生活辜负

    <!DOCTYPE html> <!-- 文档类型:标准html文档 -->
    
    <html lang='en'> <!-- html根标签 翻译文字:英文 -->
    
    <head> <!-- 网页头部 -->
    
    <meat charset='UTF-8'/> <!-- 网页字符编码 -->
    
    <meat name='Keywords' content='关键词1,关键词2'/>
    
    <meat name='Description' content='网站说明'/>
    
    <meat name='Author' content='作者'/>
    
    <title>前端59期学员作业</title> <!-- 网页标题 -->
    
    <link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外链样式表 -->
    
    <style type='text/css'> /*内部样式表*/
    
    </style>
    
    </head>
    
    <body> <!-- 网页主干:可视化区域 -->
    
    <script>
    /*
    对象方法:
    object
    */
    // 比较值是否相等
    Object.is(1, "1"); // false 类似于===
    // 注意点:此方法中,+0和-0不等,NaN和NaN相等
    
    // 对象合并,合并对象的所有可遍历的值到第一个对象中
    let obj1 = {a: 1, b: 2};
    let obj2 = {c: 3, d: 4};
    Object.assign(obj1, obj2); // obj1 = {a: 1, b: 2, c: 3, d: 4}
    
    // 对象的键值
    Object.keys(obj1); // ["a", "b"] 键
    Object.values(obj1); // [1, 2] 值
    Object.entries(obj1); // [["a", 1], ["b", 2]] 键值对
    
    /*
    静态属性:
    只能被类调用的属性
    */
    // es5 静态属性写法
    function MyClass(){};
    // 静态属性
    MyClass.say = function (){
    console.log("这是静态方法")
    }
    // es6 静态方法写法
    class MyClass{
    constructor(){
    }
    // static:静态方法 es6没有静态属性,只有静态方法
    static say(){}
    // 原型方法
    add(){}
    }
    
    // es6 extends的super
    class FatherClass{};
    class MyClass extends FatherClass{
    constructor(){
    super();
    super.xxx(); // 这里调用的是父类的原型方法(FatherClass.prototype.xxx())
    }
    // constructor以外的super不能直接调用,可以挂载调用
    static say(){
    super; // 静态方法的super指向父类(FatherClass),可以调用父类的静态方法
    }
    add(){
    super; // 原型方法的super指向父类原型(FatherClass.prototype),可以调用父类的原型方法
    }
    }
    
    // 静态属性和普通属性的区别
    // 如果该方法面向的是当前类的所有实例,就使用原型方法
    // 如果该方法面向的不仅仅只是该类的对象,就使用静态方法
    
    // 包装对象
    let str1 = "123"; // 值类型
    let str2 = new String(123); // 引用型
    str1.num = 1; // 临时产生一个对象,进行下一步操作前就消失了
    sonsole.log(str1.num); // undefined 此处输入时又临时创建了一个对象
    
    </script>
    
    </body>
    
    </html>
    

    相关文章

      网友评论

        本文标题:JavaScript学习笔记023-对象方法0包装对象0静态属性

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