我是angularjs的初学者,我通过他们的教程开始学习,但是当涉及到依赖注入时,我不太明白它的含义。
function SomeClass(greeter) {
this.greeter = greeter;
}
SomeClass.prototype.doSomething = function(name) {
this.greeter.greet(name);
}
在上面的例子中,SomeClass不关心创建或定位greeter依赖项,只是在实例化时传递了greeter。
这是可取的,但它把获取依赖项的责任放在构造SomeClass的代码上。
粗体句子实际上是什么意思?
“构造SomeClass的代码”指的是函数SomeClass(greeter)吗?
感谢大家的建议。
var some = new SomeClass(greeterInstance)
。因此,这段代码的责任是提供一个适当的greeterInstance
对象来实现greeter
接口。 - dfsqgreeterInstance
不符合 Greeter 接口(例如 greet 方法),some.doSomething()
将会抛出一个错误。这种紧密耦合就是 DI 解决的问题。 - Zhonk