在我开始之前,我想坦白,我是一个JavaScript新手,对于JavaScript模式和术语的理解和知识很少,因此请随意向我解释基本概念,就像我只有5岁一样!
我以前在我的工作中成功地使用了JavaScript原型模式。
以下是我以前使用原型模式的示例。
我不知道如何将原型函数添加到这段代码中...
(如果我对细节含糊不清,那么很抱歉,我甚至不确定为什么在我的第二个示例中要声明该命名空间,如果有人能向我解释一下,那就太好了!)
* 编辑 更正了第二个示例中的语法错误
* 编辑 我的示例中漏掉了 "new" 关键字
我以前在我的工作中成功地使用了JavaScript原型模式。
以下是我以前使用原型模式的示例。
var SomeNameSpace = SomeNameSpace || {};
SomeNameSpace.SomeClass = function(oSomeParameter){
this.SomeProperty = oSomeParameter
...
}
SomeNameSpace.SomeClass.prototype = {
SomeClassMethod: function (oSomeOtherParameter) {//code here}
}
var someClassInstance = new SomeNameSpace.SomeClass("some string");
var result = someClassInstance.SomeClassMethod("some other string");
这段代码是我一直以来使用 JavaScript 的示例。
现在我负责支持一些新的 JavaScript 代码。我想向这个新库引入相同的原型模式,但命名空间的写法对我来说很陌生,我不知道如何修改它以适应我的需求。
一个例子
if (typeof SomeNamespace == "undefined") {
SomeNamespace = { __namespace: true };
}
SomeNamespace.SomeOtherNamespace = {
SomeClass: function(oSomeParameter){
this.SomeProperty = oSomeParameter
...
}
}
我不知道如何将原型函数添加到这段代码中...
(如果我对细节含糊不清,那么很抱歉,我甚至不确定为什么在我的第二个示例中要声明该命名空间,如果有人能向我解释一下,那就太好了!)
* 编辑 更正了第二个示例中的语法错误
* 编辑 我的示例中漏掉了 "new" 关键字
SomeClass = function...
。在这里检查 http://www.jshint.com/ - elclanrsnew
。 - Bergi