我想了解何时在js中使用原型方法是合适的.它们应该一直使用吗?或者是否存在不使用它们和/或导致性能损失的情况?
在js中搜索命名空间的常用方法时,似乎大多数人使用非基于原型的实现:只需使用对象或函数对象来封装命名空间.
来自基于类的语言,很难不尝试绘制并行,并认为原型就像"类",我提到的命名空间实现就像静态方法.
我使用以下测试代码:
function Test() {
}
Test.prototype.MyMethod = {
a: function() {
},
b: function() {
}
}
Run Code Online (Sandbox Code Playgroud)
为了运行它,我只是在做:
var test = new Test();
console.debug(test);
Run Code Online (Sandbox Code Playgroud)
在firebug控制台中,我展开了打印的对象并查看__proto__:
在那里找到一个看似无穷无尽的构造函数链 - >原型:
+MyMethod
-constructor
-prototype
+MyMethod
-constructor
-prototype
+MyMethod
-constructor
Run Code Online (Sandbox Code Playgroud)
等等.我在这里做错了吗?为什么原型链似乎无止境?