Exercises

  1. Look at this code:
    function F() {
      function C() {
        return this;
      }
      return C();
    }
    var o = new F();

    Does the value of this refer to the global object or the object o?

  2. What's the result of executing this piece of code?
    function C(){ 
      this.a = 1;
      return false;
    }
    console.log(typeof new C());
  3. What's the result of executing the following piece of code?
    > c = [1, 2, [1, 2]];
    > c.sort();
    > c.join('--'); 
    > console.log(c); 
  4. Imagine the String() constructor didn't exist. Create a constructor function, MyString(), that acts like String() as closely as possible. You're not allowed to use any built-in string methods or properties, and remember that String() doesn't exist. You can use this code to test your constructor:
    > var s = new MyString('hello'); > s.length; ...

Get Object-Oriented JavaScript - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.