function fn(a) {
this.a = a
this.b = 20
for (var i = 0; i < 10; i++) {
// console.log(i)
}
return "hello";
}
var re = new fn
console.log(re)
这里函数的返回值是一个基本数据--字符串
所以他返回的是函数运行完的对象
function fn() {
this.name = "karen"
return function fm() {
console.log("fm运行了")
this.name = "jack"
}
}
var f1=new fn()
// f1
//1.{}
//2.{}.fn()里面的this是这个空对象==> {name:"Karen"}
//3.f1=为fn函数返回值是不是引用数据 是就是它 不是就是那个创建的对象
console.log(f1.name)//"fm"
var f2=new (new fn())()
这个就是要先看优先级 比较new无参和new带参的优先级谁更好然后是自调用 这个我们后面在细讲
然后做一个综合练习
// function fn() {
// this.name="marry"
// var obj = {
// name:"karen",
// fm: function() {
// this.name="jack"
// }
// }
// return obj;
// }
// var f1=new fn()//{name:"marry"} f1=obj=>{name:"karen",fm:}
// 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) ()//{name:"jack"}
// console.log(f3.name,f4.name)//karen,jack