JavaScript 面向对象

问题导向清单

对象构造器

					
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>MyJavaScript</title>
  <head>
  <body>
    <script>
      function Person(firstName, lastName, age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
      }
      wanghao = new Person("wang", "hao", "18");
      document.write(wanghao.firstName + " " + wanghao.lastName + "的年纪是:" + wanghao.age);
    </script>
  </body>
</html>
					
				

说明:

在 JavaScript 中,this 通常指向的是正在执行的函数本身,或者是指向该函数所属的对象(运行时)。

在 JavaScript 中,几乎所有的事物都是对象。JavaScript 对象是拥有属性和方法的数据。

			
/*
 * 使用字符来定义和创建 JavaScript 对象。
 */
var person = {firstName:"wang", lastName:"hao", age:18, score: 100};

var person = {
  firstName: "wang",
  lastName: "hao",
  age: 18,
  score: 100,
  methodName: function() {

  },
  fullName: function() {
    return this.firstName+" "+this.lastName;
  }
};

person.lastName;
person["lastName"];
/*
 * 对象方法是一个函数定义,并作为一个属性值存储。所以具有两面性:函数和属性。
 */
person.methoodName();        //带 () 是作为方法来调用,类似于执行函数,传参等。
person.fullName;             //不带 () 是作为属性来调用,输出方法执行结果。

			
		

可以说 "JavaScript 对象是变量的容器",但是通常认为 "JavaScript 对象是键值对的容器"。键值对通常写法为 name: value (键与值以冒号分割)。键值对在 JavaScript 对象中称为对象属性。即 JavaScript 对象是属性变量的容器。

对象键值对的写法类似于:

对象的方法定义了一个函数,并作为对象的属性存储。对象方法通过添加 () 调用 (作为一个函数)。JavaScript 对象是属性和方法的容器。对象方法是一个函数定义,并作为一个属性值存储。