Bisexual Pride

Once you start working with objects in JavaScript, you might wonder: what’s the difference between properties and methods?

Let’s look at a simple object literal that describes my dog:

const dog = {
name: 'Yoko',
breed: 'Labrador',
bark() {
return 'Woof!';

Technically, the name, breed, and bark members are all properties.

But the usual distinction is that the name and breed members are properties, while the bark member is a method.

The MDN Web Docs explain that this is just a convention:

It's typical when speaking of an object's properties to make a distinction between properties and methods. However, the property/method distinction is little more than a convention. A method is simply a property that can be called (for example, if it has a reference to a Function instance as its value).

While this may be little more than a convention, I think it’s important to stick with it. The distinction is well established and people will know what you’re talking about. In a discipline as complex as software engineering, it pays to be explicit.