我最近开始使用GraphQL,并且GitHub API似乎是学习良好实现实践的好地方,但是有些我不了解:
github接口是这样实现的:
有一个Node
接口,该接口有一个globalIdField
,如果所有实体都实现了该接口并具有一个id
字段,则该接口很好,但是所有其他接口也都有一个id
字段,因此,当type
对象实现Node和另一个接口时,它从两个接口获取其id
字段,而我不理解此实现背后的原因。
感谢任何好的详细解释
答案 0 :(得分:3)
这就是JavaScript的工作方式。您可以重新分配函数参数的值,但这不会更改传递函数的值。
function makeTrue (value) {
value = true
console.log(value) // true
}
var myVariable = false
makeTrue(myVariable)
console.log(myVariable) // false
如果传递给函数的值是对象或数组,则可以对其进行变异,并且原始值也将发生变异,因为Javascript中的对象和数组是通过引用传递的。
function makeItTrue (value) {
value.it = true
console.log(value.it) // true
}
var myVariable = { it: false }
makeTrue(myVariable)
console.log(myVariable.it) // true
换句话说,您需要更改context
参数,而不是重新分配它。