Programming Paradigms: Comparing Functional and Object-Orientated Styles in JavaScript

Recently, a friend of mine who is studying programming (in particular, programming paradigms) came to me with a question regarding implementing a game of TicTacToe in JavaScript for an online course. While the question related to some tricky behavior involving some nested arrays, it made me think about how I would best approach structuring a simple game myself without the various constrictions and methodologies I use within the frameworks I typically use.
In this post, I experiment implementing TicTacToe in functional and object-orientated styles and compare the difficulties and benefits I experienced when writing the game. While I wasn’t satisfied with either implementation, I do feel like I learned a bit more about working with vanilla JavaScript as well as some of the difficulties caused by the language design.