javascript - 'class' 语法在 javascript 中如何工作?

标签 javascript reactjs class react-native ecmascript-6

我正在为 React Native 应用程序构建 API 服务,我很好奇设置实例然后返回对象的函数之间的区别

export default AuthApiService = (bearerToken) => {

    const instance = axios.create({
            baseURL: `http://${BASE_URL}`,
            timeout: 5000,
            headers: {
                'Content-Type': 'application/json',
                 Authorization: `Bearer ${bearerToken}`
            }
        })

    const signup = async (email, password) => {
        try {
            const response = await instance.post(`/users`, {
                email,
                password
            })
            return response.data
        } catch (err) {
            console.log('error in signup api call', err, err.response)
            throw err
        }
    }

    const facebookLogin = async () => {
        try {
        } catch (err) {}
    }

    return {
        signup,
        facebookLogin
    }
}

和一个类,它使用构造函数语法创建对象并可以像这样直接访问对象的方法:

export default class AuthApiService {
    constructor(bearerToken) {
        this.instance = axios.create({
            baseURL: `http://${BASE_URL}`,
            timeout: 5000,
            headers: {
                'Content-Type': 'application/json',
                 Authorization: `Bearer ${bearerToken}`
            }
        })
    }

    signup = async (email, password) => {
        try {
            const response = await this.instance.post(`/users`, {
                email,
                password
            })
            return response.data
        } catch(err) {
            console.log('error in signup api call', err, err.response)
            throw err
        }
    }

    facebookLogin = async () => {
        try {

        } catch(err) {

        }
    }
}

在 javascript 类语法中基本上只是一个创建具有不同原型(prototype)的对象的函数?

此外,您能否就哪种方法“更好”发表意见?

谢谢

最佳答案

就像任何其他编程语言一样,类本质上只是遵循面向对象的方法。除了语法及其理解方式之外,确实没有太大区别。

特别是在 JavaScript 中,一个关键的区别是使用 constructor 函数从类创建对象。稍后可以跟踪此构造函数,而常规函数不会发生这种情况。 JavaScript 在技术上什至没有“类”。类语法是随 ES6 添加的,它几乎是一个标准函数。

至于哪种方法最好,完全取决于您。在我看来,少即是多,简单性和可读性是编程中最重要的。我会熟悉这两种方法,特别是如果你因为前 hooks 时代和当前的 hooks 趋势而计划使用 React。

关于javascript - 'class' 语法在 javascript 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575394/

相关文章:

javascript - 谷歌登录 : Permission denied to generate login hint for target domain (javascript web app)

javascript - 如何使用 jQuery 获取在 css 中设置的宽度值

javascript - 如何在 arc.centroid() 上向 D3 和弦图 Group Arcs 添加标签?

Android 找不到以下类 - EditText(更改为 android.widget.EditText、修复构建路径、编辑 XML)

javascript - 固定标签更新通知

reactjs - Uglifyjs 意外的 token 名称错误

reactjs - 使用它来存储 JSX 组件以便在其他地方显示是滥用上下文吗?

javascript - 如何理解react-router项目中的webpack配置

javascript - 在 JavaScript 下拉菜单中使用 HTML 标记而不是类

c# - 是否有可能有 2 个基类已经继承自某个继承或知道第三个公共(public)类的东西?