如何防止 JS 函数重名 ?

2018-04-11 11:16:38 +08:00
 wwjvtwoex

我的方法:const f = function (){}
还有别的方法吗 ?

5837 次点击
所在节点    JavaScript
25 条回复
Mutoo
2018-04-11 11:21:41 +08:00
VeryVeryLongFunctionNameThatEvenCantBeGuessedByAnyotherDevelopers = function() {}
chenset
2018-04-11 11:23:32 +08:00
```
(function(){
function ff(){

}
})();
```
rekulas
2018-04-11 11:32:29 +08:00
1523417455567 时间戳

veryWonderfulFunc1523417455567 = function() {}
wwjvtwoex
2018-04-11 11:32:55 +08:00
@Mutoo 我的意思是,一旦函数重名,编译器能报错,而不是静默地覆盖
wenzichel
2018-04-11 11:33:27 +08:00
1. 命名空间: 把相关的函数写到一个对象或者类中;
2. 模块化: 把函数写到一个文件里,然后其他的文件进行 import;
3. 闭包
Rhonin
2018-04-11 11:34:18 +08:00
export function xx () {}
import { xx } from xxx
wenzichel
2018-04-11 11:36:38 +08:00
4. 计数器: 用一个全局变量 counter 来计数,每命名一个函数名,则 counter++;时间戳不太好,如果代码执行的快的话,那时间戳区分不开的
```javascript
let s = 'ajaxCallback'+ window.counter;
window.counter++;
window[s]=(result)=>{
// callback(result);

};
```
murmur
2018-04-11 11:37:14 +08:00
你都知道了 const 了 以前 es5 之前都在用的避免重名的方法不晓得么
dcatfly
2018-04-11 12:18:57 +08:00
eslint 了解一下
xianxiaobo
2018-04-11 12:22:11 +08:00
第一个函数名用 1,第二个用 2,第三个用 3,怎么会重名呢?
jiangzhuo
2018-04-11 12:41:03 +08:00
不用使用函数名,所有调用此函数的地方都写个一模一样的函数
chenalex
2018-04-11 13:27:31 +08:00
"use strict"; 函数放对象里面调用,严格模式对象字面量重复属性名报错
graysheeep
2018-04-11 13:47:31 +08:00
1、eslint
2、模块化
faceRollingKB
2018-04-11 14:53:16 +08:00
js 本身是动态语言,通常只有运行时才会报错
所以你的需求应该是:有没有一款 IDE,可以在 js 代码运行之前就把运行时错误找报出来?
SourceMan
2018-04-11 15:07:05 +08:00
模块化
闭包
wotemelon
2018-04-11 15:08:30 +08:00
@faceRollingKB eslint 了解一下
iRiven
2018-04-11 15:12:29 +08:00
匿名函数,全程不需要命名
vevlins
2018-04-11 15:14:20 +08:00
这个问题听起来很奇怪
otakustay
2018-04-11 15:56:51 +08:00
咱们……直接……用……模块化……不就……好……了……吗……
fortunezhang
2018-04-11 16:11:19 +08:00
我来一个,当时接了一个私活,是用 web 做报表。好多个页面;每个页面有 n 个弹窗,弹窗上,继续弹窗。好多功能类似。 然后我就是 function page_1_some_function(){} ,后来还被他们使用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX