不是很理解object和构造函数名的关系

function Person(n, a, g){

    this.name = n;

    this.age = a;

    this.gender = g;

    this.speak = function (){   //这里只是说明this,实际应该在prototype上定义对象方法

        console.log(this);

    };

}

//作为构造函数使用

var o = new Person("Lily", 18, "F"); 

o.speak();  //Person {name: "Lily", age: 18, gender: "F"}

//作为普通函数使用

Person("Lily", 18, "F"); 

speak(); //Window

正在看一段this的说明,提到上面这段函数时 作者解释“为什么11行得到的是Person...,而不是Object...。其实这里显示的本来就应该是构造函数的名字,如果你通过varo=;创建的对象,相当于o=newObject();,这时显示的才是Object...” 这句话看不明白 Object和这个有什么区别呢 这样解释是什么意思


蝴蝶刀刀
浏览 658回答 2
2回答

汪汪一只猫

你的疑惑只是不知道 new 关键字做了什么而已;MDN官网有详细的解释,解释的其实非常详细了,个人就不献丑了new运算符
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript