Javascript AngularJS工厂中强制参数的含义是什么
我正在详细介绍angular如何通过使用module.factory()方法创建工厂 我发现内部angular使用以下方法,即内部仅使用提供者Javascript AngularJS工厂中强制参数的含义是什么,javascript,angularjs,angular-services,Javascript,Angularjs,Angular Services,我正在详细介绍angular如何通过使用module.factory()方法创建工厂 我发现内部angular使用以下方法,即内部仅使用提供者 function factory(name, factoryFn, enforce) 因此,我的问题是关于此函数的第三个参数<;代码>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;
function factory(name, factoryFn, enforce)
因此,我的问题是关于此函数的第三个参数<;代码>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>
function factory(name, factoryFn, enforce) {
return provider(name, {
$get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn
});
}
创建服务时,通常不发送返回值,并且在幕后调用Object.create()
来创建包含sayHello
方法的对象
app.service('MyService', function () {
this.sayHello = function () {
console.log('hello');
};
});
但是,在创建工厂时,将返回一个对象文字:
app.factory('MyService', function () {
return {
sayHello: function () {
console.log('hello');
};
}
});
基本上,enforce用于强制执行返回值。这不仅仅是“这是服务还是工厂?”的问题,因为如果您想:
app.service('MyService', function () {
return {
sayHello: function () {
console.log('hello');
};
}
});
关于“你应该使用哪种?”的问题,请查看以下内容: