原型和原型链

1 篇文章 0 订阅

原型和原型链问题探究

简介

原型知识是前端必不可少的进阶知识之一,掌握好原型知识可以让前端开发中更加游刃有余。

JS对象

对象是一种引用或者说是复合的数据结构。展现形式是键值形式,关于对象有很多内容,本节不做深度探究这个问题。主要探究关于原型有关的问题。

对象的创建模式
1.字面量型
  var obj1 = {
    name: "Jack",
     age: 26
     }
2.Object构造函数模式
var obj2 = new Object()
 obj2.name = "Jack"
 obj2.age = 26
3.构造函数模式
function Test(name, age){
    this.name = name
    this.age = age
    this.say = function(){
        console.log('我能说话')
    }
}
var obj3 = new Test('Jack', 26)
var obj4 = new Test('Rose', 25)
原型问题主要是探究构造函数

在上面那段代码中,Test就是构造函数,obj3,obj4是这个构造函数的实例对象,每个对象都有一个特殊的属性就是原型(prototype),(函数也有原型,函数也是对象)

注意:
1. 显式原型和隐式原型:
	a. 显式原型用prototype属性表示和查找,这是函数的特有属性,普通对象没有.
	b. 隐式原型用__proto__属性表示和查找,这是对象的属性,由于函数也是对象,
	所以每个对象都有这个属性.
	c. 隐式原型的值指向它构造函数的显式原型的值
2. Object的原型对象的隐式原型指向null
3. Function是在浏览器运行时已经创建好了的,是所有的起点.而且它的显式原型与隐式原型相等. 
4. 原型链指的就是隐式原型指向连起来的一条链状结构,在查找时会按照这条链,
一直向上查找,直到null
原型链

原型链

拓展
箭头函数出现的意义是什么?
(这个问题不在于探究箭头函数的使用问题.)
箭头函数是ES6中出现的一种简化写法,
` say=()=>{}`,箭头函数的出现关键是解决了JS中函数的二义性
在其他面向对象的语言中在开始时就有类的概念,
在js中函数不仅可以是指令序列,也可能是一个构造函数用来创建对象
而箭头函数的出现限制了其只能是指令序列而不是构造函数.优化了代码执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值