2015-07-21 4 views
0

Что такое defaults: function($super) и domain: function($super) в javascript ?. Следующий код берется из openstack-horizon. Они используют очень высокий уровень javascript-концепции, но я знаю основную часть javascript.Что такое функция домена и функция по умолчанию в javascript?

Rickshaw.Graph.Renderer.StaticAxes = Rickshaw.Class.create(Rickshaw.Graph.Renderer.Line, {  
    name: 'StaticAxes', 
    defaults: function($super) { 
    alert("13 => This is repeated many time. Rickshaw.Graph.Renderer.StaticAxes"); 
    return Rickshaw.extend($super(), { 
     xMin: undefined, 
     xMax: undefined, 
     yMin: undefined, 
     yMax: undefined 
    }); 
    }, 
    domain: function($super) { 
    //alert("HJ"); 
    var ret = $super(); 
    var xMin, xMax; 
    // If y axis wants to have static range, not based on data 
    if (this.yMin !== undefined && this.yMax !== undefined) { 
     ret.y = [this.yMin, this.yMax]; 
    } 
    // If x axis wants to have static range, not based on data 
    if (this.xMin !== undefined && this.xMax !== undefined) { 
     xMin = d3.time.format.utc('%Y-%m-%dT%H:%M:%S').parse(this.xMin); 
     xMin = xMin.getTime()/1000; 
     xMax = d3.time.format.utc('%Y-%m-%dT%H:%M:%S').parse(this.xMax); 
     xMax = xMax.getTime()/1000; 

     ret.x = [xMin, xMax]; 
    } 
    return ret; 
    } 
}); 
+1

Оба оператора присваивают функции литералу объекта. Когда вы вызываете 'defaults', он вызывается назначенной функцией. Когда вы вызываете 'domain', он вызывает другую функцию. Для получения дополнительной информации см. ** Объектные литералы ** – jasonscript

ответ

1

Рассмотрите этот код.

var objectLiteral = { 
    variable: "I'm a string", 
    fun: function(param) { 
     console.log("I'm a function."); 
     console.log("Here's the param: ", param); 
    } 
} 

console.log(objectLiteral); 
objectLiteral.fun(); 

fun и variable являются полями объекта буквальным.
function() синтаксис используется для объявления функции, которая присваивается fun.