原型与原型链

发布于:2022-10-21 ⋅ 阅读:(393) ⋅ 点赞:(0)

一、原型和原型链

1.原型(prototype):原型是函数特有的,是为了继承

<script>

function fn(){ }

fn.prototype.name='小明'

fn.prototype.fn2=function(){

console.log('111')

}

</script>

2.原型链(-proto-)prototype:所有的都有原型链(原型链没有原型)

<script>

let obj={}

console.log(obj)

let fn=function fn(){ }

console.dir(fn)

</script>

dir的理解:

<--闭包(CLosure)的形成:必须是,函数中生命另外一个函数 -->

<script>

function() {

var a = 10;

// 声明另外一个函数

(function b() {

console.log(a);

console.dir(b);

// b的scopes属性中存储了b函数生命是所在的作用域们(祖先们))

// 匿名函数作用域 被保存在b的scopes中,成为b的闭包

// 本质上 闭包就是函数作用域,只是因为被b存储了,所以称为闭包 }

})()

</script>

3.原型的查找规则:

<script>

function Person(){ //不是构造方法 }

Person.prototype.name='小明'

Person.prototype.age=18

Person.prototupe.getAge=function(){

console.log(this.age)

}

let Person1=new Person() //构造方法

console.log(Person1.name)

Person1.getAge()//函数调用

</script>

  • 当前实例属性查找,找到了返回值,否则顺着原型链一层层往上找
  • 直到找到null为止,没找到null就会报错

网站公告

今日签到

点亮在社区的每一天
去签到