I believe you are mixing two concepts in the code you're wrtiting.
Service Locator do not handle service instatiation. It allows to keep a record of services available to the system.
In that sense, the service locator should be something like
var ServiceLocator = new function () {
var self = this;
var services = {};
self.register = function (key, service) {
services[key] = service;
};
self.resolve = function (key) {
return services[key];
};
};
Then, services need to be created and registered, but as you need different services per page, a factory that pre-builds them all won't work. You could make a service register itself like
var RetailService = function () {
// service definition
};
ServiceLocator.register('retailService', new RetailService());