JS 类的创建

1.es5

     this.name = name;
     this.age = age;
 }
 Person.prototype.getName = function(){
     return this.name;
 }
 var person1 = new Person('parksoyeon',25);
 console.log(person1.getName()); //parksoyeon
 注:创建一个类,就是创建一个函数,在函数内部this上面添加属性方法,或者在原型上面添加属性方法。
   想要访问this的值,需要new 实例,实例来调用;
   prototype的实现有两种方式:
         Person.prototype.getName = function(){};
         Person.prototype = {
             getName : function(){}
         }

2.es6

  class Person{
      constructor(){
        this.name = 'jack'
      }
      getName(){
        console.log(this.name)
      }
  }
  var person1 = new Person();
  console.log(person1.getName()); //jack
  注:es6的class其实是es5的语法糖形式,constructor构造器,是this值的绑定,getName 则是绑定在原型上面;

3.创建对象的安全模式

  function Person(name,age){
    this.name = name;
    this.age = age;
  }
  //由于没有使用new ,只是执行了一遍Person(),但是Person里面没有return,就默认返回了undefined
  var person = Person('jack',18);// person undefined
  //为了防止忘记new来实例化对象,作如下修改
  function Person(name,age){
    if(this instanceof Person){
        this.name = name;
        this.age = age; 
    }else{
        return new Person(name,age);
    }
  }

你可能感兴趣的:(JS 类的创建)