构造函数

Posted 北斗七七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数相关的知识,希望对你有一定的参考价值。

构造函数其实就是一个使用new操作符调用的函数

function Person(name,age,job){
   this.name=name;
   this.age=age;
   this.job=job;
 }
var person=new Person(‘Tom‘,28,‘Teacher‘);
console.log(person.name);//Tom
 function Person(name,age,job){
   this.name=name;
   this.age=age;
   this.job=job;
 }
var person=Person(‘Tom‘,28,‘Teacher‘);
console.log(person);//undefined
console.log(window.name);//Tom

这个问题的解决方法就是创建一个作用域安全的构造函数

 function Person(name,age,job){
    if(this instanceof Person){
      this.name=name;
      this.age=age;
      this.job=job;
    }else{
      return new Person(name,age,job);
    }
 }
var person=Person(‘Tom‘,28,‘Teacher‘);
console.log(person.name); // Tom
var person=new Person(‘Tom‘,28,‘Teacher‘);
console.log(person.name); // Tom

 

以上是关于构造函数的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

防止 Proguard 删除片段的空构造函数

无法解析片段中的 ViewModelProvider 构造?

为啥要避免片段中的非默认构造函数?

片段真的需要一个空的构造函数吗?

这个嵌套类构造函数片段可以应用于泛型类吗?