1.当一个函数作为构造函数执行,此时函数中的this就变成当前实例(例如:var f= new FF(); 此时FF中的this就是 f );
2.默认将当前实例this返回(return this);
3.构造函数的返回值:如果return基本数据类型不会影响实例this的结果,如果return一个引用数据类型就会影响实例的结果,此时实例就变成了你return的东西了
function AA() {
this.name="a";
this.age=1;
this.can=function () {
console.log("我要喝奶");
};
return {a:"哈哈"};
}
var a=new AA();
console.log(a); //"哈哈"
通过字面量创建方式和构造函数创建方式的结果是不一样的,构造函数创建方式结果为一个对象,而字面量方式为一个值,构造函数方式可以通过.的方式增加其属性
面试题: 通过字符串拼接的方式返回一个数组!!
var str='[1,2,3,4,5]';
console.log(eval(str));
console.log(new Function("return" + str)());
//console.log(new Function("return" + '[1,2,3,4,5]')());
//console.log(new Function("return[1,2,3,4,5]")());