我已经了解到构造函数可以被实例化以在 javascript 中创建新对象,该对象具有自己的 _proto_ 属性,并且还将属性“原型”赋予构造函数。
function MyController() {
var controllerName = 'initialcontroller';
function init() {
console.log(controllerName);
}
this.init = init;
}
在这里,init 可以这样调用:
var mycontroller = new MyController();
mycontroller.init();
假设我只实例化一次并且不再实例化,如果我不打算使用 MyController.prototype 提供的所有原型属性,这不是矫枉过正吗?
问题:相反,我可以不使用显示模块模式进行这样的编码吗?
var myController = function() {
var controllerName = 'initialcontroller';
function init() {
console.log(controllerName);
}
return {
init : init
}
}();
在这里,init 可以这样调用:
myController.init();
在这种情况下,如果我尝试访问 myController 中不存在的任何属性,javascript 引擎将不会尝试查找该属性是否存在于原型链中的任何位置,从而节省了我的时间。
或者实例化我忽略的函数还有其他优点吗?