类其实就是构造函数的语法糖 ,
- 构造函数
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);
构造函数.png
构造函数有一个prototype属性指向自身的原型对象, 构造函数的实例有一个proto( 双下划线)属性指向自己构造函数的原型 (原型中有constructor属性指向原型对象的构造函数).
通过实例对象和this
关键字调用的属性和方法是实例属性和方法,
console.log(Person.prototype === obj.__proto__);
console.log(obj.__proto__.constructor);
构造函数.png
- 类
class Person1 {
constructor(name,age){
this.name = name;
this.age = age;
}
//这是一个类的方法,不可以加上function
say(){
return '我的名字叫做'+ this.name + '今年' + this.age;
}
}
let obj1= new Person1('lili',12);
console.log(obj1.say());
obj1.aa = 'nihao'
obj1.bb = function(){
return this.aa
}
console.log(obj1);
类.png
关于
this
关键字的作用 , 以及原型链的内容在这里只是略微的提过,想了解具体的内容可以---
网友评论