zoukankan      html  css  js  c++  java
  • js中函数调用时,对参数个数和类型没有要求

    因为js是一种弱类型的编程语言,对数据类型的要求没有其他编程语言的要求严格,所以在定义函数的时候不需要像java一样对其传入参数的类型进行定,也对传入参数的个数没有要求。

    js函数的参数与大多数其他语言中的函数的参数有所不同。js函数不介意传递进来多少个参数,也不在乎穿进来参数是什么数据类型。也就是是说,即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。之所以会这样,原因是js中的参数在内部是用一个数组来运行的。函数接受到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没问题。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给含糊的每一个参数。

    详情请参考:https://www.cnblogs.com/jphoebe/articles/5141417.html这篇文章

    本项目中的代码:

    NavBar.vue中的代码:

    <el-dropdown-menu slot="dropdown" class="user-dropdown">
    <router-link class="inlineBlock" to="/">
    <el-dropdown-item>
    首页
    </el-dropdown-item>
    </router-link>
    <el-dropdown-item divided>
    <span style="display:block;" @click="logout">退出</span>
    </el-dropdown-item>
    </el-dropdown-menu>
    logout() {
    this.$store.dispatch('LogOut').then(() => {
    location.reload() // 为了重新实例化vue-router对象 避免bug
    })
    },

    user.js中的代码:

    import { login, logout, getInfo, changeUser } from '@/api/login'
    // 登出
    LogOut({ commit, state }) {
    return new Promise((resolve, reject) => {
    logout(state.token).then(() => {
    commit('SET_TOKEN', '')
    commit('SET_ENTERPRISEID', '')
    commit('SET_ENTERPRISETYPE', '')
    commit('SET_SUPERTYPE', '')
    commit('SET_ROLES', [])
    commit('SET_USERID', '')
    removeToken()
    removeEnterpriseId()
    removeEnterpriseType()
    removeUserId()
    removeUserTokenList()
    resolve()
    }).catch(error => {
    reject(error)
    })
    })
    },

    login.js中的代码:

    export function logout() {
      return request({
        url: '/user/logout',
        method: 'post'
      })
    }

    在该案例中,user.js中logout(state.token)调用login.js中的logout()方法,仍然都可以调用。

  • 相关阅读:
    LeetCode#13罗马数字转整数
    LeetCode#7整数反转
    LeetCode#1两数之和
    LeetCode#26删除排序数组中的重复项
    LeecCode#1550存在连续三个奇数的数组
    LeetCode#228汇总区间
    LeetCode#1476子矩形查询
    LeetCode#1535找出数组游戏的赢家
    LeetCode#867转置矩阵
    Vue源码——摸着石头过河
  • 原文地址:https://www.cnblogs.com/zwh0910/p/13885970.html
Copyright © 2011-2022 走看看