一、普通函数和构造函数有什么区别?
1.普通函数:函数名小写,调用方式直接就是函数名加括号,如有个abc方法,function abc(){};调用方式直接就是abc()。函数内的this指向的是window对象,如果添加属性也是为window添加属性,输出的时候要window.属性才会有输出。所以内部不建议用this。还有就是可以用return语句返回值
function Cat(){
alert('ac');
}
Cat();
2、构造函数一般都是用首字母大写的函数名字,含有new关键字。函数内的this指向该对象(abc),但前提下必须先是new abc(),这样才算构造函数,每new一次都是一个新的对象,this也不一样。构造函数默认不用return语句,默认返回this对象,当然也是可以用的,返回的是一个对象,如return { name: 'abc'}。其次,构造函数有属性方法。如下是构造函数
方法1:
function Cat(color,footer){
this.color=color;
this.footer=footer;
this.showColor=function(){
alert(this.color);
}
}
var cat=new Cat('white',4);
如果要showColor还要调用一次cat.showColor()才会执行方法
方法2:function Cat({};
Cat.prototype.color='white';
Cat.prototype.footer=4;
Cat.prototype.showColor=function(){
alert(this.color);
}
var cat=new Cat();
如果要showColor还要调用一次cat.showColor()才会执行方法