…this.somefunction()(用省略号开头的类方法的调用)在javascript中有什么作用?该函数返回一个对象

问题描述 投票:-1回答:1

试图理解代码段。以下代码段中...this.savedSettings()的作用。 afaik,省略号用于解构并将变量传递给函数(扩展语法)

    constructor(props) {
        super(props);
        this.state = {
            page: 'dashboard',
            ...this.savedSettings(),  // THIS LINE
            setPage: this.setPage,
        };
    }

    savedSettings() {
        if(noData) {
            return {page: 'settings', firstVisit: true};            
        }
        return {};
    }
javascript
1个回答
0
投票

这实际上用作传播语法。语法将应用于返回的对象。它将给定的对象(this.state与函数this.savedSettings()返回的对象合并。导致this.state分配有

// if noData is true
        {
            page: 'settings',  // MERGED/OVERWRITTEN 
            firstVisit: true,  // MERGED/ADDED
            setPage: this.setPage,
        };

// if noData is false
        {
            page: 'dashboard',  
            setPage: this.setPage,
        };
© www.soinside.com 2019 - 2024. All rights reserved.