1. 读取对象的属性值时: 会自动到原型链中查找
    2. 设置对象的属性值时: 不会查找原型链, 如果当前对象中没有此属性, 直接添加此属性并设置其值
    3. 方法一般定义在原型中, 属性一般通过构造函数定义在对象本身上

      1. function Person(name, age) {
      2. this.name = name;
      3. this.age = age;
      4. }
      5. Person.prototype.setName = function (name) {
      6. this.name = name;
      7. }
      8. Person.prototype.sex = '男';
      9. var p1 = new Person('Tom', 12)
      10. p1.setName('Jack')
      11. console.log(p1.name, p1.age, p1.sex)//Jack 12 男
      12. p1.sex = '女'
      13. console.log(p1.name, p1.age, p1.sex) //Jack 12 女
      14. var p2 = new Person('Bob', 23)
      15. console.log(p2.name, p2.age, p2.sex) // Bob 23 男