javascript - 将只有键的对象分配给 require 语句

标签 javascript node.js graphql

这是Graphql入门第一步的简单赋值语句,我不是很懂

var { graphql, buildSchema } = require('graphql');

我试过运行

var { graphql, buildSchema } = require('graphql');
console.log(buildSchema+"variable ends");return;

var { graphql, buildSchema } = require('graphql');
console.log(graphql+"variable ends");return;

第一个打印一个小函数,第二个打印一个大函数。我也试过了

var { graphql, buildSchema } = require('graphql');
var obj = require('graphql');
console.log(obj+"variable ends");return;

我搜索了这个对象是否包含一个与对象属性(graphql、buildSchema)同名的函数。

我不明白。那么它到底是什么意思呢?

最佳答案

这只是解构,其工作方式与解构标准对象时相同。分解:

require('graphql'); 返回一个具有各种属性的对象,例如

{
  graphql: function(a, b) { ...
  buildSchema: function(schemaInfo, anotherArgument) { ...
  someOtherProperty: etc
}

解构是从对象中提取特定属性并在同一语句中将它们声明为变量的简写版本。所以:

var { graphql, buildSchema } = require('graphql');

相当于:

var graphqlImport = require('graphql');
var graphql = graphqlImport.graphql;
var buildSchema = graphqlImport.buildSchema;

关于javascript - 将只有键的对象分配给 require 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49473448/

相关文章:

javascript - 执行单独的 .js 文件

javascript - 如何使用 Jest 测试节点列表

mysql - 在 sequelize.js 中,是否可以取消嵌套包含嵌套的查询结果?

node.js - Node js 聊天服务器 - 用户身份验证

javascript - 我是否需要关闭每个具有等待结果回调的方法?

graphql - apollo graphql 模式 react-admin 初学者

javascript - 在 Chrome 扩展中绕过 <meta> X-Frame-Options DENY?

JavaScript - 好的部分 : Function prototypes vs Object prototypes

graphql - 在Python Graphene中使用模式中不同的类型执行嵌套查询

graphql - 从 Graphcool 获取随机元素?