'class'语法在javascript中如何工作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'class'语法在javascript中如何工作?相关的知识,希望对你有一定的参考价值。
[我正在为React Native应用构建api服务,我很好奇设置实例然后返回带有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类语法中,基本上只是一个使用其他原型创建对象的函数?
还可以就哪种方法“更好”提出意见吗?
谢谢
答案
就像任何其他编程语言一样,类实质上只是遵循面向对象的方法。除了语法和理解方式外,实际上并没有什么区别。 特别是在JavaScript中,一个关键区别是使用constructor
函数从类创建对象。以后可以跟踪此构造函数,而常规函数则不会发生。从技术上讲,JavaScript甚至没有“类”。 ES6中添加了类语法,这几乎是标准的函数。
关于哪种方法最好,这取决于您。我认为,少即是多,而简单性和可读性是编程中最重要的事情。我会熟悉这两种方法,尤其是由于前钩时代和当前的钩子趋势,如果您计划与React一起使用的话。
另一答案
我建议尽可能不使用类(使用Javascript),请在factory functions with fun fun function上观看此视频,以了解通常为什么工厂功能更好的原因。 Class.prototype可能很棘手,而javascript中的“ this”关键字可能很棘手,而没有使用.bind(this)正确绑定方法调用。 React甚至将您的方法绑定到类中。 这并不是说类在任何方面都是不正确的,只是在javascript中它们可能不必要地变得复杂。
以上是关于'class'语法在javascript中如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
[UE4插件使用-问题合集-02] error C4458: declaration of 'ModuleIndex' hides class member 函数参数使用的参数名字与