类其实就是构造函数的语法糖 ,
- 构造函数
function Person(name, age) {
this.name = name;
this.age = age;
}
//添加在原型上的方法
Person.prototype.say = function() {
return "我的名字叫" + this.name + "今年" + this.age + "岁了";
};
//创造实例
var obj = new Person(小白", 88); /
console.log(obj.say());
obj.hi = function(){
return this.age
}
console.log(obj);
构造函数有一个prototype属性指向自身的原型对象, 构造函数的实例有一个__proto__( 双下划线)属性指向自己构造函数的原型 (原型中有constructor属性指向原型对象的构造函数).
通过实例对象和this
关键字调用的属性和方法是实例属性和方法,
console.log(Person.prototype === obj.__proto__);
console.log(obj.__proto__.constructor);