JavaScript如何处理以点开头的行?

时间:2014-12-21 20:29:50

标签: javascript angularjs

我尝试了解angularjs.org上的示例。例如,以下代码段。这个.value.factory以及.config如何运作?

angular.module('project', ['ngRoute', 'firebase'])

.value('fbURL', 'https://angularjs-projects.firebaseio.com/')

.factory('Projects', function($firebase, fbURL) {
  return $firebase(new Firebase(fbURL)).$asArray();
})

.config(function($routeProvider) {
  ...

修改

我不理解上面代码的观点是第一行之后的空白行和以点开头的行。

5 个答案:

答案 0 :(得分:5)

作为标准dictates,除非有reason for ASI(例如使用后缀操作,returncontinuethrowbreak语句,JS分隔语言标记的行终止符被视为任何其他空格 - 即被忽略。所以这些线......

angular.module(arg1, arg2)
.value(arg3)
.controller(arg4)
.filter(arg5)

...的处理方式与......基本相同。

angular.module(arg1, arg2).value(arg3).controller(arg4).filter(arg5)

所以关于可读性。

答案 1 :(得分:3)

javascript中的函数可以返回一个可以调用函数的对象。基本上你可以链接函数调用。这与jQuery相同,例如jQuery。让我们假设您有一个具有以下方法的对象:

setFirstValue()
setSecondValue()

如果从这些方法中返回相同的对象(例如):

function setFirstValue() { do something here; return this; }

您现在可以将这些方法链接在一起:

object.setFirstValue().setSecondValue()

所以..正如你所看到的那样......这个点实际上是对前一个操作的结果进行操作 - 它就像那个一样简单。

答案 2 :(得分:2)

这与:

相同
var app = angular.module('project', ['ngRoute', 'firebase'])

app.value('fbURL', 'https://angularjs-projects.firebaseio.com/')

app.factory('Projects', function($firebase, fbURL) {
  return $firebase(new Firebase(fbURL)).$asArray();
})

app.config(function($routeProvider) {
  ...

angular.module调用返回一个对象,点符号引用返回的前一个对象。

希望这有助于您了解对象的引用如何按照您设置的方式工作。

答案 3 :(得分:1)

要回答您更新的问题:

Javascript忽略换行符和间距。它只是将其读作.module()。value()。factory.config(),但它以人类可读的方式进行格式化。

答案 4 :(得分:0)

.对前面的表达式的结果进行操作。例如,angular.module('project', ['ngRoute', 'firebase'])返回一个模块对象,您可以在其上调用.value