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

  • 相关阅读:
    CF #536div2E(dp)
    BZOJ2440(容斥+莫比乌斯函数)
    莫比乌斯反演题目结(下)
    struts 文件上传示例
    struts 文件上传示例
    struts2请求过程源码分析
    struts2请求过程源码分析
    如何快速成为数据分析师?
    如何快速成为数据分析师?
    多对多 hibernate映射
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/9798291.html
Copyright © 2011-2022 走看看