我正在学习angularjs,这个家伙做了这个代码:
.factory('cribs',function(){
var data = [{
name: "jack",
last: 'doe'
},{
name: 'hazel',
last: 'man'
}
];
function getcrib(){
return data;
}
return{
getcrib: getcrib // what the heck does this mean?
}
})
我用返回线缓冲了......他返回了一个带有返回数据的函数的getcrib对象?
开头的getcrib
是否需要完全相同的情况?谢谢你提前。
答案 0 :(得分:3)
以下所有四个代码都做同样的事情。希望您对函数声明有更好的理解。 :)
代码1:
.factory('cribs',function(){
var data = 3.142;
function getcrib(){
return data;
}
return{
getcrib: getcrib
}
})
//console.log(cribs.getcrib()) outputs 3.142
说明:
- 返回一个对象。
- 此对象具有
醇>getcrib
属性,该属性引用名称也为getcrib
的函数。
代码2:
.factory('cribs', function() {
var data = 3.142;
return {
getcrib: function() {
return data;
}
}
})
//console.log(cribs.getcrib()) outputs 3.142
说明:
- 返回一个对象。
- 此对象具有
醇>getcrib
的属性,该属性引用匿名函数。 (匿名是一个没有名字的函数)
代码3:
.factory('cribs',function(){
var data = 3.142;
function GET_PI_VALUE(){
return data;
}
return{
getcrib: GET_PI_VALUE
}
})
//console.log(cribs.getcrib()) outputs 3.142
说明:
- 返回一个对象。
- 此对象具有
的情况相同 醇>getcrib
属性,该属性引用名称为GET_PI_VALUE
的函数。这与代码1
代码4:
.factory('cribs', function() {
var data = 3.142;
return {
getcrib: function GET_PI_VALUE() {
return data;
}
}
})
//console.log(cribs.getcrib()) outputs 3.142
说明:
- 返回一个对象。
- 此对象具有
醇>getcrib
属性,该属性引用名称为GET_PI_VALUE
的函数。这与代码3的情况相同。
代码5
.factory('cribs', function() {
var data = 3.142;
return {
getcrib: function GET_PI_VALUE() {
return data;
}
}
})
//console.log(cribs.GET_PI_VALUE()) gives an error, complaining GET_PI_VALUE is not a function.
说明:
- 返回一个对象。
- 此对象的属性为
getcrib
- 醇>
GET_PI_VALUE
完全是阴影,因此错误。GET_PI_VALUE
本身的功能是 NOT 返回,只返回引用(通过getcribs)。