dus*_*awn 5 javascript namespaces
我想了解第三方的Javascript代码.但我无法弄清楚以下编码风格的用途.
function A(){
}
A.Prop = '23';
A.generate = function(n){
// do something
}
Run Code Online (Sandbox Code Playgroud)
然后它只是用作:
A.generate(name);
Run Code Online (Sandbox Code Playgroud)
有人可以解释这段代码在做什么.我理解一些OO Javascript,但我想知道这是否是任何其他形式的扩展具有新属性的对象.虽然我没有看到任何"新"关键字被使用,但创建一个对象.
有任何想法吗 ?
谢谢,
他们正在创建命名空间.有很多方法可以做到这一点,而且所有方法都或多或少相同:
A = {
Prop : '23',
generate : function (n) {
// do something
}
};
Run Code Online (Sandbox Code Playgroud)
或者,等效地:
A = { };
A.Prop = '23';
A.generate = function (n) {
// do something
};
Run Code Online (Sandbox Code Playgroud)
另外,如果你喜欢冗长:
A = new Object();
A.Prop = '23';
A.generate = function (n) {
// do something
};
Run Code Online (Sandbox Code Playgroud)
function 通常用于表示"类"而不是"命名空间",如下所示:
A = (function () {
var propValue = '23'; // class local variable
return {
"Prop" : propValue,
"generate" : function (n) {
// do something
}
};
})();
// then I can use A in the same way as before:
A.generate(name);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10280 次 |
| 最近记录: |