怎样理解构造函数

Posted aisowe

tags:

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

不使用new关键字时, 构造函数是一个普通函数

function Person(name){
    var name = name;
    var sayHello = function(){
        console.log("Hello, I‘m "+name);
    }
    sayHello();
}

Person(); // "success."

// 调用Array的静态方法
Array.isArray([1,2,3]); // True

 

 

使用new关键字时, 构造函数生成的是一个实例对象

function Person(name){
    this.name = name;
    this.sayHello = function(){
        console.log("Hello, I‘m "+name);
    };
}

var Hanmeimei = new Person("Hanmeimei");
Hanmeimei.sayHello(); // "Hello, I‘m Hanmeimei";

 

注意: 构造函数有两大特征区别于一般函数: 

1. 内部声明的变量, 如果需要被实例对象所继承, 则需要使用this关键字.

2. 只有使用new命令才会实例化一个对象, 不使用的话就跟普通函数没有区别.

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

怎样理解构造函数中的return语句

在 Visual Studio 中创建构造函数的代码片段或快捷方式

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

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

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

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