JS 8-1 OOP概念与继承

function Foo(){
    this.y=2;
}

typeof Foo.prototype;
Foo.prototype.x = 1;
var obj3= new Foo();

obj3.x;
obj3.y;

Foo构造器 this指向obj3对象。obj3的原型(__proto__)会指向Foo.prototype。
prototype的作用是Foo.prototype会用作new对象的原型。
即obj3.__proto__ == Foo.prototype //ture

Foo.prototype 
结果:
constructor : ƒ Foo() 
__proto__ : Object

constructor属性指向Foo对象本身
即Foo.prototype.constructor == Foo(true)
__proto__ 是非标准原型。此处是Foo.prototype的原型
一般的对象比如{}都有__proto__属性

 注意:prototype是函数的一个内置对象。__proto__是对象的非标准原型

 

function Person(name,age){
this.name = name;
this.age =age;
}

一般调用this指向全局对象,浏览器中为window
new调用,this指向一个空对象,这个空对象的原型为Person.prototype。this作为return值。

Object.create(Person.prototype)创建一个空对象,并且这个对象的原型指向Person.prototype

var o = {f:function(){return this.a+ this.b}};
var p = Object.create(o)
p.__proto__ == o //true

以上p的原型指向o

var a ={x:1}
a.__proto__ == Object.getPrototypeOf(a) //true
Object.getPrototypeOf获取对象的原型

转载于:https://www.cnblogs.com/chrisghb8812/p/9614030.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值