当前位置: 首页 > article >正文

js、vue、angular中的函数声明方式及特点

目录

一、原生 JavaScript 函数声明方式及特点

1. 函数声明式

2.函数表达式(匿名函数赋值给变量)

        语法:let functionName = function(param) {

        示例:

3.箭头函数(ES6引入)

 二、Vue 中的函数声明方式及特点(以组件内方法为例)

1、Vue2中函数声明: 

        1.1 方法定义在methods选项中

        1.2 计算属性(可以看作是一种特殊的函数)

2.vue3中函数声明

三、Angular 中的函数声明方式及特点(以组件内方法为例)


一、原生 JavaScript 函数声明方式及特点

1. 函数声明式

        语法:function functionName (param) {

                        // 函数体

                   }

        示例:

       function add(a, b) {
         return a + b;
       }

        特点:函数声明会被提升,这意味着可以在函数声明之前调用它。在编译阶段,JavaScript 引擎会先读取函数声明,并将其添加到执行环境中,使得函数在整个作用域内都可以被访问。这种方式使得代码结构更清晰,易于阅读和维护,适合定义一些具有明确功能的独立函数。

2.函数表达式(匿名函数赋值给变量)

        语法:let functionName = function(param) {

                        // 函数体

                   };

        示例:

       let subtract = function(a, b) {
         return a - b;
       };

        特点: 函数表达式不会被提升,必须在定义之后才能调用。这种方式更灵活,可以在运行时动态地创建函数,并且可以将函数作为参数传递给其他函数或者作为返回值返回。例如,在事件处理中经常使用函数表达式来定义回调函数。

3.箭头函数(ES6引入)

        语法:parameters) => { // 函数体 },如果只有一个参数可以省略括号,函数体只有一行代码时可以省略花括号并自动返回表达式的值。

        示例:

       let multiply = (a, b) => a * b;

        特点:箭头函数没有自己的this,它会继承外层函数的this值。这使得在处理对象方法和回调函数时,可以避免this指向的问题。箭头函数的语法简洁,适用于简单的函数操作,尤其是在函数作为参数传递或者在数组方法(如mapfilter等)中使用时非常方便。

 二、Vue 中的函数声明方式及特点(以组件内方法为例)

1、Vue2中函数声明: 

        1.1 方法定义在methods选项中

        语法:

       new Vue({
         el: '#app',
         data: {
           // 数据
         },
         methods: {
           functionName: function () {
             // 函数体
           }
         }
       });

        示例(简单的加法函数):

       new Vue({
         el: '#app',
         data: {
           num1: 1,
           num2: 2
         },
         methods: {
           add: function () {
             return this.num1 + this.num2;
           }
         }
       });

        特点:在 Vue 组件中,方法定义在methods选项内。这些方法可以通过this关键字访问组件的数据(data选项中的数据)。方法主要用于处理组件的业务逻辑,如响应用户交互(点击按钮、输入框输入等)、数据计算等。Vue 会自动将这些方法绑定到组件实例上,并且在模板中可以通过@(缩写)或v - on指令来调用这些方法,如<button @click="add">加法</button>。这种方式使得视图和逻辑分离,提高了代码的可维护性。

        1.2 计算属性(可以看作是一种特殊的函数)

        语法:

  
         data: {
           // 数据
         },
         computed: {
           computedPropertyName: function () {
             // 函数体,通常是根据data中的数据进行计算
             return // 计算结果
           }
         }

        示例(计算两个数的乘积)



         data: {
           num1: 3,
           num2: 4
         },
         computed: {
           product: function () {
             return this.num1 * this.num2;
           }
         }

        特点:计算属性是基于响应式数据的缓存函数。它会根据其依赖的数据(data中的数据或者其他计算属性)自动缓存计算结果。只有当依赖的数据发生变化时,才会重新计算。这使得在模板中多次使用计算属性时,性能更好,因为不需要每次都重新计算。在模板中,可以像使用普通数据一样使用计算属性,如{{ product }}。

2.vue3中函数声明

        在 Vue 3 的组合式 API 中,函数通常在一个单独的函数中定义,然后通过setup函数返回给组件使用。

        语法:

     import { defineComponent, ref } from 'vue';
     export default defineComponent({
       setup() {
         // 定义响应式数据
         const count = ref(0);
         // 定义函数
         const increment = () => {
           count.value++;
         };
         return {
           count,
           increment
         };
       }
     });

        特点:组合式 API 使得代码更加模块化和可维护,函数可以更好地组织和复用。在这个例子中,increment函数可以直接修改响应式数据count。并且,组合式 API 可以更好地与 TypeScript 结合,提高类型安全性。 

三、Angular 中的函数声明方式及特点(以组件内方法为例)

        在组件类中定义方法

        语法:

       import { Component } from '@angular/core';
       @Component({
         selector: 'app - my - component',
         templateUrl: './my - component.component.html',
         styleUrls: ['./my - component.component.css']
       })
       export class MyComponent {
         functionName() {
           // 函数体
         }
       }

        示例(简单的日志输出函数):

       import { Component } from '@angular/core';
       @Component({
         selector: 'app - my - component',
         templateUrl: './my - component.component.html',
         styleUrls: ['./my - component.component.css']
       })
       export class MyComponent {
         logMessage() {
           console.log('这是一个Angular组件方法');
         }
       }

        特点:在 Angular 组件中,函数作为组件类的方法来定义。这些方法可以通过组件模板中的事件绑定(如(click)等)来调用,也可以在组件的其他方法中调用。Angular 是基于 TypeScript 开发的,函数的参数和返回值可以明确指定类型,这增强了代码的可读性和可维护性。并且,Angular 的依赖注入机制使得组件可以方便地获取和使用服务中的方法,将业务逻辑和组件逻辑分离,提高代码的可复用性。例如,可以在组件的构造函数中注入一个服务,然后在组件方法中调用服务的方法来获取数据或者执行其他操作。


http://www.kler.cn/a/380185.html

相关文章:

  • (七)Python运算符和优先级
  • 个人对Numpy中transpose()函数的理解
  • 【c++日常刷题】两个数字的交集、点击消除、最小花费爬楼梯
  • selenium自动搭建
  • HTML5实现小鸟过管道小游戏源码
  • MFC工控项目实例二十八模拟量信号每秒采集100次
  • docker下迁移elasticsearch的问题与解决方案
  • 关于 C# (C Sharp)测试
  • Spring Boot技术在校园社团管理中的高效应用
  • Javascript的进阶部分(DOM)操作 !!
  • ssm023实验室耗材管理系统设计与实现+jsp(论文+源码)_kaic
  • 开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作
  • 机器视觉:ROI在机器视觉中的作用
  • Spring学习笔记_24——切入点表达式
  • Pwn学习笔记(10)--UAF
  • ElementUI中el-table双击单元格显示输入框
  • 基于SSM+小程序的高校寻物平台管理系统(失物1)
  • k8s简单的指令以及图解
  • 论文阅读:Computational Long Exposure Mobile Photography (二)
  • Spring3(代理模式 Spring1案例补充 Aop 面试题)
  • 使用commitizen用于项目git提交规范管理
  • HarmonyOS第一课 07 从网络获取数据-习题
  • 【python GUI编码入门-14】创建动态更新的Tkinter GUI应用
  • 【算法】【优选算法】双指针(下)
  • 了解bootstrap改造asp.net core MVC的样式模板
  • 【湖南-常德】《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》-省市费用标准解读系列05