我用这个解决方案解决了Javascript中的Gigasecond练习问题。我想知道我能做得更好:
//GLOBAL VARS
var usrpos;
function handleGetCurrentPosition(location){
var lat = location.coords.latitude;
var lng = location.coords.longitude;
usrpos = {lat: lat, lng: lng};
}
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: usrpos,
zoom: 12
});
}
为什么这个解决方案更好?
var gigasecondConverter = function(unformattedDate) {
this.date = function() {
return beginAtStartOfDay(Number(unformattedDate) + 1000000000000)
}
}
beginAtStartOfDay = function(number) {
date = new Date(number)
date.setSeconds(0);
date.setMinutes(0);
date.setHours(0);
return date;
}
module.exports = gigasecondConverter
为什么原型的自执行功能和用法比直接在函数上定义日期方法更好?使用Number和getTime()也有区别吗?
答案 0 :(得分:4)
哇!在第一个代码:
中但最大内存浪费 每次 时间你要打电话 gigasecondConverter 您将创建 beginAtStartOfDay 的 新 实例。想象一下,使用 gigasecondConverter 100次和99次你做内存浪费!记忆力差:D
在第二个:
中现在 每次 时间你要打电话给 Gigasecond 它只会创建 ONE _beginningOfTheDay < / em>即使您拨打100次电话,它也会始终调用 Gigasecond 的 SAME 原型功能。
JavaScript中的原型非常强大!将它用于一个你要打电话和多次返回的功能对你的记忆总是一件好事。的:)强>