javascript - Javascript中的模块模式与构造函数
问题描述
与这样的简单对象构造函数相比,使用模块模式的优缺点是什么?:
function Car() {
var _mileage = 123;
this.bar = function() {
console.log(_mileage);
}
}
两者都允许私有变量和方法,那么为什么以及何时需要或推荐模块模式?
提前致谢!
解决方案
两者都创建了模块模式,而您展示的模式则使用范围来限制对变量和函数的访问,并在它们之上创建一个闭包。
模块模式主要用于创建一个对象:
var car = (function () {
var _mileage = 123;
function bar() {
console.log(_mileage);
}
return {
bar: bar
};
}());
虽然您展示的那个允许创建多个对象,但它们是Car
.
var car1 = new Car();
var car2 = new Car();
console.log(car1 instanceof Car); // true
console.log(car2 instanceof Car); // true
推荐阅读
- python - PYTHON 中的错误位置参数跟在关键字参数之后
- python - scikit-learn CountVectorizer。词汇_
- go - 有没有办法在 Go 中生成类似于 Python 的 `secrets` 模块的加密强随机数?
- java - 如何修复“原始错误:“命令”以代码 1 退出”;标准错误:''; 代码:'1''
- azure - 用于更新 Azure 中标签的 PowerShell 脚本
- laravel - Laravel 包安装 “包”命名空间中没有定义命令
- php - 从两个表中获取数据时,我怎样才能使它不重复相同的结果?
- g1ant - mouse.click 命令循环工作?
- c++ - boost::asio::deadline_timer cancel() 方法没有调用定时器处理程序
- typescript - serviceWorker 找不到全局变量