有时我们写
window.COB = window.COB || {};
window.COB.HostWebApp = function() { ... }();
有时我们会写
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
有什么不同?我可以阅读什么以及在哪里阅读以了解这些基本和重要的东西?
有时我们写
window.COB = window.COB || {};
window.COB.HostWebApp = function() { ... }();
有时我们会写
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
有什么不同?我可以阅读什么以及在哪里阅读以了解这些基本和重要的东西?
在 Javascript 中没有类,只有对象。但是你可以使用一个函数来做一些经典的事情。你可以认为一个对象的形式
var name = {};
作为一种“静态”类,您不需要在其中实例化和
var name = function(){}
作为使用前需要实例化的类。
这是一个很好的阅读:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
您正在定义要用作命名空间的对象文字。有时您希望将函数和对象分组在逻辑组中,例如 url,但相反。例如:
com.myCompany.myApplication.Dom
com.myCompany.myApplication.Validators
Dom 在哪里做 dom 东西,而 Validators 在哪里做验证。你不能只定义
com.myCompany.myApplication.Dom
因为 window.com 是未定义的,并且您不能在 window 上添加 myCompany,这就是为什么在您的代码中window.COB = window.COB || {};
检查窗口上是否存在 COB 以及是否不存在它的原因。
稍后您可以将代码组织在多个文件中,以便 Dom 进入 Dom.js(就像在 Java 中一样)。如果我想创建 com.myCompany.myApplication.Dom 我必须逐步检查对象是否尚未创建:
com=com||{}; //if com doesn't exist create it
com.myCompany=com.myCompany||{};//if com.myCompany doesn't exist create it
//... and so on
这是因为 com.myCompany 可能已经在 Validators.js 或任何其他 js 文件中声明,并且您不想直接覆盖它。
编码:
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
将抛出错误,因为 COB 在窗口上未定义,您必须先定义它。