首页 > 解决方案 > JavaScript 中的双重命名?

问题描述

只是想问一下:在 JavaScript 中将函数命名为变量有什么原因吗?

(我的意思是使用Dep了两次。刚刚在 Vue.js 中爬行,发现了这个)

var Dep = function Dep () {
    this.id = uid++;
    this.subs = [];
  };

标签: javascriptvue.js

解决方案


变量名不是函数名;它只是一个恰好包含对该函数的引用的变量。

function关键字后面的“Dep”函数的名称。无论后来名为“Dep”的变量发生了什么,函数内部的“Dep”将始终是它自己的名称。

在这种情况下,这当然无关紧要,因为函数不引用自身。

不久前,这样做是一个好主意,以避免在浏览器控制台中报告来自“匿名函数”的错误。现代浏览器调试环境非常擅长获取合适的名称,但仍有一些情况不能。


推荐阅读