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);
    }
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容