zoukankan      html  css  js  c++  java
  • JavaScript面向对象

    一.原型链

    function Person(n,a){
        return {
            name : n , 
            age :  a
        }
    }
    Person.prototype.abc=function(){
        console.log("儿子");
    }
    let person = new Person('张子浩',20);
    console.log(person.name);
    Person.prototype.abc();

    定义一个函数,返回这些属性,就犹如C#中对函数封装一样,我们可以对这个函数进行封装。

    二.Class类

    ES6和ES5中有非常多的不相似点,我们慢慢思考

    class DBHelper {
        constructor() {}
        getdate () {
            return new Date();
        }
    }
    // 导出内容
    // export default DBHelper = DBHelper;  // ES6 
    module.exports = DBHelper;              // ES5

    通过 module.exports 可以进行公开内容  差不多就pubic。

    在第二个class中

    // import ZZH from './lei2.js'; // ES6
    var ZZH = require('./lei2'); // ES5   require.js
    // 在 JS 中 所有的 类 都可以看成是 object 的 子类。
    class Person{
        // 构造函数
        constructor(n,a){
            this.name = n;
            this.age= a;
        } 
        abc(){
            console.log('hehe');
        }
    }

    通过constructor关键字可以写构造函数,我们还可以在类中写其他的方法.

    其中require关键字是可以引用别的lei  差不多就是new关键字   路径可以是绝对路径和相对路径,我们就可以去调用ZZH中的函数了

     三.类的继承

    // 类的继承
    class Student extends Person{
    
    }
    let person = new Person('张子浩',20);
    console.log(person.name);

    let stu = new Student('张建晗',20);
    console.log(stu.name);
     
    console.log(typeof (person)); // object
    console.log(typeof (stu)); // object
     
    // 获取对象的 构造函数
    console.log(person.constructor);
    console.log(stu.constructor);
     

    类的继承可以通过extends关键字,值得思考的是两者的类型都是object,获取对象的构造函数可以通过constructor

  • 相关阅读:
    Unity贴图压缩优化处理
    Unity游戏开发图片纹理压缩方案
    devexpress panelcontrol 里面控件自适应宽度
    devexpress winform spinedit 右边上下箭头去掉
    devexpress layoutcontrolitem 里面控件tabindex不起作用
    jar包生成本地maven ,以供pom引用
    C# 计算代码执行效率
    C# 使用队列
    C#遍历获取所有文件
    C#多线程等待所有子线程结束
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/9798291.html
Copyright © 2011-2022 走看看