变量、函数名命名冲突解决方案

本文探讨了在JavaScript中如何通过挂载到window全局对象来管理命名空间,以避免命名冲突,并介绍了遵循命名规范注册变量的方法。在大型项目中,采用多层级结构如trade.trade_namual.create进行组织。此外,虽然未详细展开,但提到了PHP相关的内容,暗示可能在PHP中也有类似策略处理命名冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript

JS中避免命名冲突常用的方法:前缀,闭包,命名空间,模块化开发。
 
① 在变量或函数名前根据功能模块,加上不同的前缀。如平台platform_,订单trade_。
 
② 闭包
 
 
上面闭包函数是简单实现计数器加减功能。使用闭包实现效果如下:
 
 
也可以使用匿名函数的方式去实现:
执行效果如下, 每个闭包都是引用自己词法作用域内的变量 counter。 每次调用其中一个计数器时,通过改变这个变量的值,会改变这个闭包的词法环境。然而在一个闭包内对变量的修改,不会影响到另外一个闭包中的变量。
使用匿名函数的方式使用闭包,提供了许多面向对象编程的相关好处,特别是数据隐藏和封装。
 
③ 命名空间
实现的效果演示:
 
大型项目实现方案:
  • 在全局管理命名空间,可以把命名挂在在window这个全局对象上,来实现命名空间的整合和通信。
  • 按照约定的命名规范,将本变量注册到全局
  • 大型项目中,变量对象会出现多层级的结构,如:trade.trade_namual.create,一层一层注册。
实现:
 
调用演示:
 
es6使用建议:
推荐let和const关键词。块级作用域使用let申明变量,只读常量使用const申明。
 
④ 模块化开发
 

php

命名空间
a.php
<?php
namespace A;
function common(int $a){
    return $a+1;
}
const _VAR = 9999;

 

index.php
<?php
require('a.php');
const _VAR = 1;
function common(int $a){
    return $a-1;
}
echo A\common(3); // 调用命名空间为A下的common方法
echo common(4);
echo _VAR;
echo A\_VAR; // 调用命名空间为A下的_VAR常量

 

执行效果:
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值