Javascript返回一个带有函数名的json?

时间:2017-01-13 02:43:27

标签: javascript angularjs json

我正在学习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是否需要完全相同的情况?谢谢你提前。

1 个答案:

答案 0 :(得分:3)

以下所有四个代码都做同样的事情。希望您对函数声明有更好的理解。 :)

代码1:

.factory('cribs',function(){
    var data = 3.142;
    function getcrib(){
        return data;
    }
    return{
        getcrib: getcrib 
    }
})
//console.log(cribs.getcrib()) outputs 3.142
  

说明:

     
      
  1. 返回一个对象。
  2.   
  3. 此对象具有getcrib属性,该属性引用名称也为getcrib的函数。
  4.   

代码2:

.factory('cribs', function() {
  var data = 3.142;
  return {
    getcrib: function() {
      return data;
    }
  }
})
//console.log(cribs.getcrib()) outputs 3.142
  

说明:

     
      
  1. 返回一个对象。
  2.   
  3. 此对象具有getcrib的属性,该属性引用匿名函数。 (匿名是一个没有名字的函数)
  4.   

代码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
  

说明:

     
      
  1. 返回一个对象。
  2.   
  3. 此对象具有getcrib属性,该属性引用名称为GET_PI_VALUE的函数。这与代码1
  4. 的情况相同   

代码4:

.factory('cribs', function() {
  var data = 3.142;
  return {
    getcrib: function GET_PI_VALUE() {
      return data;
    }
  }
})
//console.log(cribs.getcrib()) outputs 3.142
  

说明:

     
      
  1. 返回一个对象。
  2.   
  3. 此对象具有getcrib属性,该属性引用名称为GET_PI_VALUE的函数。这与代码3的情况相同。
  4.   

代码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.
  

说明:

     
      
  1. 返回一个对象。
  2.   
  3. 此对象的属性为getcrib
  4.   
  5. GET_PI_VALUE完全是阴影,因此错误。 GET_PI_VALUE本身的功能是 NOT 返回,只返回引用(通过getcribs)。
  6.