重新认识原型和原型链一

之前分享过原型和原型链,那时候觉得理解的还行,最近重新理了一遍原型和原型链,发现当时理解的好粗浅。于是又重新学了一遍。可能这次学习的还是不到位,只是分享一些新的体会。
先明确几个概念:
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)
在这里插入图片描述
以上这些概念要好好理一下,然后记住。

欢迎关注Coding个人笔记订阅号

猜你喜欢

转载自blog.csdn.net/wade3po/article/details/88420395
今日推荐