ES5|ES5 构造函数 当new完一个构造函数对象后都发生了什么()

创建对象可以通过三种方式: 1.对象字面量 var obj1 = {};
2.var obj2 = new Object()
3.自定义构造函数 function funcName () {}
构造函数是一种特殊的函数,主要用来初始化对象,即 为对象成员变量赋初始值,它总与new一起使用。我们可以把对象中一些公共属性和方法抽取出来,然后封装到这个函数里面。

当new完一个构造函数对象后都发生了什么?
1.首先会先创造一个空的对象 2.让构造函数里面的this指向这个新的对象 3.执行构造函数里面的代码,给这个新对象添加属性和方法。 4.返回这个新对象,所以构造函数里面不需要return。 实例成员:就是【构造函数内部】通过【this】添加的成员 实例成员只能通过【实例化的对象】来访问。liudehua.uname

function Star(age,uname){ this.age = age; this.sing = function(){ xxxx } } var liudehua = newStar('刘德华',18);

【ES5|ES5 构造函数 当new完一个构造函数对象后都发生了什么()】静态成员:在【构造函数本身】添加的成员 Star.funcName = "xxx"; funcName就是静态成员
静态成员那只能通过【构造函数】来访问 Star.xxx
构造函数的一个缺陷,就是浪费内存, 虽然函数方法是一样的但是他们的内存地址是不同的,也就是说一人开辟了一个内存空间,开了两个。 ES5|ES5 构造函数 当new完一个构造函数对象后都发生了什么()
文章图片
image.png 这就需要引入构造函数原型prototype的概念了 下一篇会有介绍

    推荐阅读