javaScript 高级语法 - 构造函数创建对象,原型对象 prototype,对象原型 _proto_,原型对象中的constructor属性,原型链,方法与属性查找机制,原型对象this指向问题

1.构造函数创建对象

function Human(id,name) {
  this.id=id; //属性
  this.name=name;
  this.info=function () { //方法
    console.log("info:"+this.id+this.name);
  }
}
Human.age=18; //静态属性
Human.parse=function () { //静态方法
  console.log(this)
}
//创建对象
var human=new Human(1,"levi");

 

2.原型对象

function Human() {

}
//构造函数访问原型对象
Human.prototype

每一个构造函数都有一个prototype属性,这个属性指向原型对象

这个属性,构造函数与对象都可以通过不同的方式访问到

我们可以把那些不变的共享的方法 定义在原型对象上

 

3.对象原型

function Human() {

}
var human=new Human();
//对象访问 对象原型
humanhuman.__proto__;
console.log(human.__proto__ == Human.prototype) //true

对象都会有一个属性_proto_,这属性指向了prototype原型对象

 

4.原型对象中的constructor属性

原型对象中的constructor属性 指向构造函数

 

 

5.原型链

原型对象的原型对象指向的是Object中的原型对象,Object中的原型对象是null

 

 

6.方法与属性的查找机制

当一个对象调用一个方法或属性时,首先在查找自身,然后原型对象上,Object中的原型对象上,返回null值

 

7.原型对象this指向问题

谁调用 this 就指向谁

posted on 2023-02-08 11:51  Mikasa-Ackerman  阅读(17)  评论(0编辑  收藏  举报

导航