Javascript一天学完系列(三)JavaScript面向对象

Object Oriented JavaScript面向对象


JavaScript uses functions as classes to create objects using the new keyword. Here is an example:

function Person(firstName, lastName) {
    // construct the object using the arguments
    this.firstName = firstName;
    this.lastName = lastName;

    // a method which returns the full name
    this.fullName = function() {
        return this.firstName + " " + this.lastName;
    }
}

var myPerson = new Person("John", "Smith");
console.log(myPerson.fullName());            // outputs "John Smith"

Creating an object using the new keyword is the same as writing the following code:

var myPerson = {
    firstName : "John",
    lastName : "Smith",
    fullName : function()
    {
        return this.firstName + " " + this.lastName;
    }
}

The difference between the two methods of creating objects is that

the first method uses a class to define the object and then the new keyword to instantiate it

and the second method immediately creates an instance of the object.

Exercise

Create a class called Person which accepts the name of a person as a string, and his/her age as a number.

The Person class should have a method called describe which returns a string with the following syntax: "name, age years old". So for example, if John is 19 years old then the function describe of his object will return "John, 19 years old".

Answer

// TODO: create the Person class using a function
function Person(name,age)
{
    this.name=name;
    this.age=age;
    this.describe=function()
    {
		return this.name+", "+this.age+" years old";
		//注意题目中的空格
    }
}
var jack = new Person("Jack", 25);
var jill = new Person("Jill", 24);
console.log(jack.describe());
console.log(jill.describe());

posted @ 2020-02-20 14:28  Yan_Hao  阅读(224)  评论(0编辑  收藏  举报