原型prototype,每个函数都会有这个属性,这个属性对应一个对象,就是原型对象。
当函数以构造函数的形式进行调用时,它所创建的对象中都会有一个隐含的属性,指向该构造函数的饿原型对象。
原型对象相当于一个公共区域。有这个原型的对象都可以用。
可以用in来检查对象中是否含有摸个属性,但是如果自身没有,原型有也会返回true,但是hasown
property可以用来检查对象自身是否含有该属性。
当我们在页面中直接打印一个对象时,事件上是输出的对象的tostring方法的返回值,
function Person(name, age, gender) {
(this.name = name), (this.age = age), (this.gender = gender);
}
var per = new Person("笨笨", 14, "男");
console.log(per.__proto__.__proto__.hasOwnProperty("toString"));
Person.prototype.toString = function () {
return (
"Person[ name = " +
this.name +
",age = " +
this.age +
",gender = " +
this.gender +
"]"
);
};
console.log(per);