前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重新认识原型和原型链一

重新认识原型和原型链一

作者头像
wade
发布2020-04-24 10:21:17
2490
发布2020-04-24 10:21:17
举报
文章被收录于专栏:coding个人笔记coding个人笔记

之前分享过原型和原型链,那时候觉得理解的还行,最近重新理了一遍原型和原型链,发现当时理解的好粗浅。于是又重新学了一遍。可能这次学习的还是不到位,只是分享一些新的体会。

先明确几个概念:

function Fn() {}var time = new Date();

JavaScript里面有一句话说:万物皆对象,对象带有属性和方法。函数也是对象,只不过是比较特殊的对象。

上面的Fn叫函数对象,Date也叫函数对象,Date是JavaScript内建的函数对象。

当我们把函数首字母大写,这样的函数我们不会直接调用,而是叫做构造函数,这是约定的俗成。

这边要牢牢记住,Fn叫函数对象,也叫构造函数。Date、Array、String等是JavaScript内建的函数对象,也叫构造函数。Fn是我们自己定义的,Date等是JavaScript内建的。

函数对象都有原型,也就是prototype属性,函数的原型其实就是指prototype,当然,它也是一个对象,毕竟万物皆对象,所以prototype也可以叫原型对象。声明函数的时候会自动生成原型prototype属性。JavaScript内建的函数也都有原型prototype,也有一些除外,暂时就知道Math没有。

还有一点要特别记住,prototype只有函数对象才有,prototype也叫作显式原型,也就是说只有函数才有显式原型。

function Fn() {}
console.log(Fn.prototype)
console.log(Object.prototype)
console.log(Number.prototype)
console.log(Date.prototype)
console.log(RegExp.prototype)
console.log(Math.prototype)
var a = 1;
var b = 'abc';
var c = true;
console.log(a.prototype)
console.log(b.prototype)
console.log(c.prototype)

以上这些概念要好好理一下,然后记住。

(完)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档