美文网首页
《闭包和原型链》 笔记

《闭包和原型链》 笔记

作者: 一洼世界 | 来源:发表于2019-05-10 23:31 被阅读0次

闭包: 在外围作用域结束后,仍能访问到外围作用于变量的一些函数。

在一些编程语言中,函数中的局部变量仅在函数的执行期间可用.
JavaScript中的函数会形成闭包。 闭包是由函数以及创建该函数的词法环境组合而成。这个环境包含了这个闭包创建时所能访问的所有局部变量。

原型链:为了多个对象拥有相同的属性,节省内存和减少重复代码等

DraggedImage.f4be187c1c234ad49937d5490803edf0.png

prototype: 函数身上,指向圆形对象
proto: 对象身上(函数创建的对象,函数本身和圆形对象),指向自身原型。
constructor: 原型对象上,指向构造函数。指明构造函数方便在对象上扩展原型属性。
Object.proto为null:原型的顶端

使用

通常情况下,我们在实现继承的时候,会将一个函数的原型指向另一个函数的实例对象,而不是函数的原型本身。

function Foo() {
     this.value = 42;
 }
 Foo.prototype = {
     method: function() {}
 };
 
 function Bar() {}
 
 // 设置Bar的prototype属性为Foo的实例对象
 Bar.prototype = new Foo();
 或者
 Bar.prototype.method = function(x, y) { }
  1. var b = extends({}, a) //一次性复制
  2. var c = Object.create(a); // 会有引用
    原型类:当对一个对象进行属性字段查找时,可以到另外一个对象中查找。

原型模式构造:减少了创建一个新对象时候复制所有属性这一开销。创建一个新对象对原型对象的委托。

相关文章

网友评论

      本文标题:《闭包和原型链》 笔记

      本文链接:https://www.haomeiwen.com/subject/ucctaqtx.html