javascript - 有人可以解释这条线在做什么吗

标签 javascript reactjs

谁能帮我理解这个函数在线发生了什么

function getContainer(container, defaultContainer) {

    //this line below
    container = typeof container === 'function' ? container() : container;

    return ReactDOM.findDOMNode(container) || defaultContainer;
}

container 正在被分配 typeof container 的结果,但如果 container 等于一个函数,则调用该函数。

我有点头晕。此代码是从 react 组件模态的 Material ui 文档中提取的

最佳答案

它说的是:

if container 是一个函数,将它分配给一个名为 container 的变量,然后该函数将被调用,else 将变量 container 设置为传递给 getContainer 函数的参数 container

你也可以这样写,这样可能更容易阅读:

if (typeof container === 'function') {
   container = container();
} else {
   container = container;
}

在您的示例中,它使用三元运算符,这是编写 if/else 语句的另一种方式。您可以阅读更多here .

关于javascript - 有人可以解释这条线在做什么吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341018/

相关文章:

javascript - React 中的three.js - 缺少THREE.ShaderTerrain

javascript - 使用 laravel 将多个参数传递给 onClick() 函数

javascript - 单击 ng-repeat 中的按钮时会给出错误的警报值

javascript - 如何使用 rangy 从 iframe 中抓取选定的文本?

javascript - React Redux - 当他们返回该页面时如何在特定位置使用

reactjs - Apollo 客户端 3 从缓存中逐出对象

javascript - 使用 ng-click 过滤新闻和事件

javascript - React.js 如何每秒更改球的类别?

javascript - 重命名 React Native 示例应用程序

javascript - react this.setState 问题