作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很了解 JavaScript 的基本概念,但我很难理解一些高级概念。我想知道的概念是命名空间。什么时候有用?我应该如何使用它?如果有任何解释,我将不胜感激。
最佳答案
我会用一个例子来回答。
您想填充一个数字,使其长度为 2
位,
function pad(x) {
return ('00' + x).slice(-2);
}
pad(3); // "03"
您在网站上还有一些其他代码可以填充 n
位长的数字
function pad(x, n) {
x = '' + x;
n = n + 1 - x.length;
if (n < 0) n = 0;
return new Array(n).join('0') + x;
}
pad(3, 5); // "00003"
现在,如果您将这两段代码放在同一页面上会发生什么情况?
按照他们目前的顺序,你会得到
pad(3); // RangeError: Invalid array length
因为函数重名,所以用错了。
如何避免此类问题?命名空间!如果您将所有代码放入命名空间,您唯一需要担心的冲突就是为您的命名空间选择的名称,其他一切都根据该名称命名,因此不会发生冲突。
JavaScript 中的命名空间可以通过多种方式实现,但通常归结为向对象添加属性
// make an Object to be your namespace
var myNamespace = {};
// define your thing of interest within namespace
myNamespace.pad = function (x) {return ('00' + x).slice(-2);};
// and then use it
myNamespace.pad(3); // "03"
关于javascript - 命名空间背后的概念是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382668/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!