我正在为 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/