JavaScript之函数的高级(一)原型

原型与原型链

1 原型prototype

1、函数的prototype属性(图)
函数的prototype属性
每个函数都有一个prototype属性,它默认指向Object空对象(即原型对象)
原型对象中有一个属性constructor,它指向函数对象

2、给原型对象添加属性(一般都是方法)
***作用:函数的所有实例对象自动拥有原型中的属性(方法)

// (1)每个函数都有一个prototype属性,它默认指向Object空对象(即原型对象)
    console.log(Date.prototype,typeof Date.prototype);//Object "object"
    function Funn() {}
    console.log(Funn.prototype);//默认指向一个空对象(没有我们指定的)
   // Object {constructor: ƒ}
    // constructor: ƒ Funn()
    //__proto__: Object
     //给原型对象添加属性(一般是方法),实例对象可以访问
    Funn.prototype.test=function () {
        console.log('test()');
    }
    console.log(Funn.prototype);//有我们制定的函数test

    //(2)原型对象中有一个属性constructor,它指向函数对象
    console.log(Date.prototype.constructor===Date);//true
    console.log(Funn.prototype.constructor===Funn);//true
   var funn = new Funn();
   funn.test();

2、原型继承

js的继承实际上是原型的继承
原型其实是一个对象。
有时会说js是基于对象的继承

注意:java是基于类的继承
JavaScript面向对象(高级)2.1原型继承


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值