我是angularjs的初学者,我从他们的教程开始学习,但是当涉及到依赖注入(inject)时,我不太了解它的含义。

function SomeClass(greeter) {
  this.greeter = greeter;
}

SomeClass.prototype.doSomething = function(name) {
  this.greeter.greet(name);
}

在上面的示例中,SomeClass与创建或定位greeter依赖关系无关,它只是在实例化greeter时交给它。

这是合乎需要的,,但它负责将依赖项保持在构造SomeClass的代码上。

粗体句子实际上是什么意思?

“构成SomeClass的代码”,是否表示函数SomeClass(greeter)

谢谢大家的建议

最佳答案

不,function SomeClass(greeter)是构造函数。

在这种情况下,构造SomeClass的代码无论代码做什么(类似)

var greeter = new Greeter();
var someInstance = new SomeClass(greeter);

这通常在DI框架代码中。

底部只是在Javascript类上声明成员函数的方式(几种方式之一)。
SomeClass.prototype.doSomething = function(name) {
  this.greeter.greet(name);
}

所有要做的就是确保每个SomeClass实例都有一个doSomething函数。出于解释DI的目的,该部分完全不相关。

关于javascript - AngularJS依赖注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24750512/

10-12 05:26