原型的理解

!!!函数也是一个特殊的对象

所有的对象都有一个属性叫proto 代表的是这个对象的原型对象

原型思想:内存共用

所有函数都有name,length,prototype属性,用函数创建对象,创建出来的原型对象就是prototype属性引用的对象

prototype属性中引用了一个系统内置的对象:new Object()

对象有proto属性 代表他的原型对象

函数有prototype属性 代表创建的对象的原型对象

原型对象可以访问成员

new fn()
1.创建一个空对象==》创建一个空对象{} 给他添加一个属性__proto__ 这个属性引用fn.prototype
2.运行fn函数 函数内部的this就是创建的这个对象
3.new fn()表达式会生成一个结果 这个结果一般就是那个创建的对象,如果有函数返回值return,并且return返回的是引用数据,那么这个对象就会被销毁,返回值作为表达式的结果

new fn;和new fn();的区别

new fn;能创建对象,但是并不会传入参数,只有加了括号的new fn()才能传入参数

原型的理解:

函数的属性:prototype

对象的属性:__proto__

function fn(){
    this.name="karen"
    this.age=20
}

var a=new fn(); // var a={name:"karen",age=20}

// fn.prototype=a.__proto__


function fm(){
    this.life=1;
    this.eye=2;
}

fm.prototype=a; // fm的原型就变成了{name:"karen",age="20"}

var b=new fm() // var b={life:1,eye:2}  并且b中也能访问到name和age属性


var b1=new fm() // b1也能访问所有的属性,因为他们拥有相同的原型对象


所以,原型思想就是内存的共用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值