函数与构造函数的本质
##1.铺垫
要了解函数,先要铺垫几个知识点:
a.实例化:从一个定义(类名),变成一个实际存在(占用内存)的对象.
b.初始化:你可以理解为创建 .
c.构造方法:你可以理解为对象从无到有要进行的操作.
d.表达式:凡是将数据和运算符等有值的式子联系起来的式子就是表达式
##2.函数
定义:函数就是被重复执行的代码块,它会被定义一次,但是可能会重复调用多次。
结构:函数名 ,参数,返回值
##定义函数的三种方式
a.函数声明定义
function fn(n){ var a=++n; return a; }; console.log(fn(5)); //6
b.函数表达式定义
var fn=function(n){ var a=++n; return a; }; console.log(fn(5)); //6
c.构造函数
js中任意函数都是Function的实例,构造函数所有参数都是字符串类型,除了最后一个参数,其他参数都是形参,最后一个参数是实参(body)。
构造函数的实质是用来初始化对象,它一般和new一起使用,new是用来创建对象,构造函数是用来给对象添加属性和方法。
##使用构造函数的步骤:
a.使用new申请内存,创建对象;
b.调用构造函数,构造函数有一个隐形参数,即this;
c.把创建的对象的属性和方法赋值到构造函数的this参数中;
d.通过this.属性名=值的方式给对象添加成员。
var func = new Function("name", "age", "height", "console.log(name)"); func("yj",18,178);
##对于一些复杂函数,这种方法表现性不好,推荐使用前两种方法。