小言_互联网的博客

JavaScript 面向对象的基本用法

380人阅读  评论(0)

目录

前言

一、类的定义(class)

语法:

创建实例:

举例:

二、给类添加方法

举例:

三、类的继承(extends、调用super())

举例:

1.继承父类普通属性

2.调用父类的构造函数

3.调用父类的普通函数

四、私有属性的获取

语法:

举例:


前言

       JavaScript 语言中,生成实例对象的传统方法是通过构造函数,ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。

一、类的定义(class)

    使用class关键词 声明类,constructor为构造方法,一个类必须有constructor()方法,如果没有显式定义,一个空的constructor()方法会被默认添加,this关键字则代表实例对象。

     注意:不需要在使用function(){}

语法:

基本语法


  
  1. class Name {
  2. }

创建实例:

var  p1 = new name();//p1是自己取的

举例:


  
  1. class UserName{
  2. constructor( uname,age){
  3. this. uname=uname;
  4. this. age = age;
  5. }
  6. }
  7. var xm= new UserName( '小明', 18);
  8. console. log(xm. uname ,xm. age);

二、给类添加方法

  需要将填加的东西直接放入,定义的类中

举例:


  
  1. class UserName{
  2. constructor( uname,age){
  3. this. uname=uname;
  4. this. age = age;
  5. }
  6. sing( song){
  7. console. log( '唱歌'); //直接调用
  8. console. log( this. uname+song); //使用函数传递参数
  9. }
  10. }
  11. var xm= new UserName( '小明', 18);
  12. console. log(xm. uname ,xm. age);
  13. xm. sing( '中国');

三、类的继承(extends、调用super()

Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。

ES6 规定,子类必须在constructor()方法中调用super(),否则就会报错。

举例:

1.继承父类普通属性

父类:


  
  1. class Fsther {
  2. constructor( ){
  3. }
  4. money( ){
  5. console. log( 100);
  6. }
  7. }

子类:


  
  1. class Son extends Fsther{
  2. }
  3. var son = new Son(); //给子类实例化
  4. son. money(); //可以获取父类的内容

2.调用父类的构造函数

父类:


  
  1. class Fsther {
  2. constructor( x,y){
  3. this. x=x;
  4. this. y=y;
  5. }
  6. addition( ){
  7. console. log( this. x+ this. y);
  8. }
  9. }

子类:


  
  1. class Son extends Fsther{
  2. constructor( x,y,z){
  3. super(x,y); //获取父类的构造函数,super必须在子类使用this前,调用父类
  4. this. z=z; //子类的添加
  5. }
  6. }
  7. var son = new Son( 1, 2, 5);
  8. son. addition();
  9. console. log(son. z); //获取子类所添加的内容
  10. //在实际开发中,可以通过调用来节省时间,在调用的基础上增加,所需要的内容。

3.调用父类的普通函数

父类:


  
  1. class Fsther {
  2. say( ){
  3. return '我是小明';
  4. }
  5. }

子类:


  
  1. class Son extends Fsther{
  2. say( ){
  3. console. log( super. say()+ '的儿子');
  4. }
  5. }
  6. var son = new Son();
  7. son. say();

四、私有属性的获取

语法:


  
  1. #p= 1;
  2. getp( ){
  3. return this.#p;
  4. }

举例:


  
  1. class Fsther {
  2. #money= 10000 //设置私有属性
  3. getMoney( ){ //获取私有属性
  4. return this.#money;
  5. }
  6. }
  7. class Son extends Fsther{
  8. }
  9. var son = new Son();
  10. var f = new Fsther();
  11. f. getMoney();
  12. console. log(f. getMoney());
  13. console. log(son. getMoney());


转载:https://blog.csdn.net/yzq0820/article/details/125661584
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场