new带参和new无参都会调用函数
function fn(){
this.name = 'karen'
return function fm(){
console.log('fm运行了');
this.name = 'jack'
}
}
var f1 = new fn()
console.log(f1.name); //打印fm() 因为fn()函数有返回值 所以f1就是函数fm()
var f2 = new (new fn())()
console.log(name); //打印 空字符串 是原型链上自带的
console.log(f2.name); //打印Jack
console.log(x);//报错 去原型上找没找到报错
console.log(window.x);//undefined 去原型链上找
function fn(){
this.name = 'marry'
var obj = {
name:'karen',
fm:function(){
this.name = 'jack'
}
}
return obj
}
var f1 = new fn()
console.log(f1.name); //打印karen
var f2 = new ((new fn()).fm)()
console.log(f2.name);//打印 jack
var f3 = new fn()
var f4 = new(f3.fm)()
console.log(f3.name,f4.name); //打印karen jack