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
构造函数的一个缺陷,就是浪费内存, 虽然函数方法是一样的但是他们的内存地址是不同的,也就是说一人开辟了一个内存空间,开了两个。
文章图片
image.png 这就需要引入构造函数原型prototype的概念了 下一篇会有介绍
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- vue组件中为何data必须是一个函数()
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- R语言|R语言 函数
- javascript|javascript 性能测试笔记
- 2018-05-30闭包和函数