【发布时间】:2015-12-09 23:57:04
【问题描述】:
这是我经常遇到的问题,我希望找到正确的方法来处理它。
所以我有这样的设置:
parent.js:
export default {
x: 1
}
a.js:
import parent from 'parent.js'
export default parent.extend(a, { title: 'a' })
b.js:
import parent from 'parent.js'
export default parent.extend(b, { title: 'b' })
酷,现在我有了一些孩子。 但我决定我想在 parent.js 中有一个函数来检查一个对象是 a 还是 b 的实例。
所以我可以这样做:
parent.js:
import a from 'a'
import b from 'b'
export default {
x: 1,
checkType (obj) {
if (obj instanceof a) {
return 'a'
} else if (obj instanceof b) {
return 'b'
}
}
}
现在这是一个循环依赖。有没有优雅的方法来处理这个问题?
【问题讨论】:
-
什么是
parent.extend?instanceof在那里是如何工作的?有new吗? -
对不起,应该更清楚。为简洁起见,我假设某种 Backbone 式的原型继承。
-
checkType是否需要在该主父文件中?如果你把它放在不同的文件中,似乎这一切都会得到解决。
标签: javascript ecmascript-6 circular-dependency commonjs