首页 > 其他分享 >Vue的class类面向对象

Vue的class类面向对象

时间:2024-04-18 17:44:35浏览次数:19  
标签:Vue name age 面向对象 Animal constructor 方法 class

一. 准备工作

JavaScript 语言中,生成实例对象的传统方法是通过构造函数

function Animal(name,age){
            this.name = name;
            this.age = age;

        }
        Animal.prototype.showName = function(){
            console.log(this.name);
            console.log(this.age);
        }

        var a = new Animal('小黄',5);
        a.showName();

上面这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。

ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。

基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。上面的代码用 ES6 的class改写,就是下面这样

class Animal{
            
            // 构造器  当你创建实例之后 constructor()方法会立刻调用 通常这个方法初始化对象的属性
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
            showName(){
                console.log(this.name);
            }
        }
        var a2 = new Animal('点点',3);

上面代码定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5 的构造函数Animal,对应 ES6 的Animal类的构造方法。

Animal类除了构造方法,还定义了一个showName方法。注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。

ES6 的类,完全可以看作构造函数的另一种写法。

console.log(Animal2===Animal2.prototype.constructor);//true

上面代码表示,类本身就指向了类的构造函数。

使用的时候,也是直接对类使用new命令,跟构造函数的用法完全一致。

二. Constructor方法

constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。

class Animal {
}

// 等同于
class Animal {
  constructor() {}
}

上面代码中,定义了一个空的类Point,JavaScript 引擎会自动为它添加一个空的constructor方法。

标签:Vue,name,age,面向对象,Animal,constructor,方法,class
From: https://www.cnblogs.com/liyunxi/p/18144094

相关文章

  • 6个高级Vue3知识技巧
    Vue3是一个非常流行的前端框架,广泛应用于大型互联网企业和个人项目。虽然我们已经熟悉了一些常见的Vue3知识,但还有一些不太常见但实用性很强的点可以帮助我们进一步优化和提升Vue3应用的性能和开发效率。本文将介绍一些不太常见的Vue3知识点。01、TeleportTeleport是V......
  • VuePress搭建文档网站
    VuePress官方文档:https://v2.vuepress.vuejs.org/zh/guide/getting-started.html以下是官方文档复制过来的步骤,加上了我的一些经验注释。1、依赖环境Node.jsv18.16.0+(我试了v14是运行不了的,必须这个版本及以上,建议安装nvm,方便切换node版本)包管理器,如pnpm、yarn、npm等(我安......
  • vue3 获取遍历的子组件
    <template><div><!--使用v-for遍历数据,并为每个子组件设置一个ref--><ChildComponentv-for="(item,index)initems":key="index":ref="el=>setChildRef(el,index)"/></div>......
  • Vue3 + vite 项目自定义一个svg-icon组件
    1.安装vite-plugin-svg-icons插件npmivite-plugin-svg-icons-D2.vite.config.ts中配置importpathfrom"path";import{createSvgIconsPlugin}from"vite-plugin-svg-icons";exportdefaultdefineConfig({plugins:[......createS......
  • vue3+elementplus+axios+router的入门项目总结
    一、使用vite方式创建项目:1、创建空文件夹,用vscode打开空文件夹,终端上运行如下命令$npminitvite-app[项目名]:初始化项目$cd[项目名]:进入项目$npminstall:安装项目依赖$npmrundev:启动项目2、启动项目后会出现访问地址: 3、进入访问地址: 二、引入elementpuls......
  • Vue3 使用setup语法糖时, 组件name命名
    1.多使用一个<script>标签命名<script>exportdefault{name:'Person'}</script><scriptsetup>...</script>2.使用插件安装插件vite-plugin-vue-setup-extendpnpminstallvite-plugin-vue-setup-extend-D在vite.con......
  • 面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?
    前言最近有粉丝找到我,说被面试官给问懵了。粉丝:面试官上来就问“一个vue文件是如何渲染成浏览器上面的真实DOM?”,当时还挺窃喜这题真简单。就简单说了一下先是编译成render函数、然后根据render函数生成虚拟DOM,最后就是根据虚拟DOM生成真实DOM。按照正常套路面试官接着会问vue......
  • vue父子组件之间传值以及方法调用
           参考:https://blog.csdn.net/xiasohuai/article/details/80663739       https://blog.csdn.net/qq_33718889/article/details/92696145......
  • vue3 ts 建立项目
    1、安装pnpmnpminstallpnpm-g2、安装vitepnpminstallvite-D3、在需要的文件夹下建项目npmcreatevite@latest 打开4、main.ts引入element-plusnpminstallelement-plus--savemain.tsimportElementPlusfrom'element-plus'import*asElementPlusIconsVue......
  • 『手撕Vue-CLI』自定义指令
    前言最近一直忙于工作项目上面的事情,精力少了很多,所以一直没更文,很多技术点,都做在我自己的Notion笔记库中,今天,我决定要改变一下方式,所以又重新来更文了。在前面的章节中已经分享了VueRouter,实现了VueRouter之后,到此为止,Vue,Vuex,VueRouter就都已经搞定了。到这里,大家应该......