Javascript has prototypal inheritance.
For example let’s create a constructor function:
function Person(firstname, lastname) { this.firstname = firstname; this.lastname = lastname; } Person.prototype = { fullname: function() { return this.firstname + ' ' + this.lastname; } }; var bob = new Person("Bob", "Doe"); console.log(bob.fullname()); This is very similar to the Prototype Pattern. Whenever we want a new object, we always create it out of some prototype object.
I find that it is easier to understand the JS’s prototype inheritance when comparing it with the Prototype Pattern.
Javascript: Understanding the Weird Parts is a great course. Highly recommended if you are getting into JS from other programming languages. Much better than the book Javascript: the Good Parts in my opinion.
Here I distilled all the source code with comments from the videos, for the impatients.
The answer to this question is easy:
assertThat(a, is(b))
Done.
Wait, before closing this web page, let me ask you a few questions.
First, let’s make a concrete class Student.
public class Student { public final String name; public final int age; public final String id; public Student(String name, int age, String id) { this.name = name; this.age = age; this.id = id; } } Very simple data class. Now let’s try the solution in the beginning of the article.
It’s nice weather today, so I decided to give JS another chance.
For thoes who don’t know yet(really, if you want to do JS you should know already, haven’t you been reading everything in JS weekly every week?). There is a free course called JavaScript30 offered by Wes Bos, in which you build 30 small project using vanilla JS. Since it is perceived pretty well in JS community, I decided to start from there.
If you decide to write Kotlin code, eventually you will see a lot of usage of the following 4 functions from standard library: run, let, also and apply.
After doing a lot of research, I show simple examples of how to use them here.
First, a helper class Student.
class Student(name: String, age: Int, stuNum: String) { var name = name private set var age = age private set var stuNum = stuNum private set fun increaseAge() { age++ } fun nameToUpperCase() { name = name.