zoukankan      html  css  js  c++  java
  • js继承与闭包(笔记)

    1、一切引用类型都是对象,对象是属性的集合;typeof null === 'object'(例外);

    2、对象都是通过函数创建来的,比如var obj = new Object();typeof Object === 'function'; 

    3、函数有隐藏属性prototype,对象有隐藏属性__proto__;

         Func.prototype.constructor === Func;

         func.__proto__ === Func.prototype;

    4、对象的__proto__属性都指向创建它的函数的prototype;

        Object.prototype.__proto === null;

        Object.__proto__ === Function.prototype;

        Function.__proto__ === Function.prototype;

        Function.prototype.__proto === Object.prototpe;

    5、instanceof 其实是一种继承关系,A instanceof B(沿着A的__proto__找,同时沿着B的prototype找,如果最终能找到同一个饮用,就true);

    6、访问一个对象的属性,如果自身没有,则沿着__proto__向上找,这就是原型链;

    7、var obj = {},arr = [];

         obj.toString === '[object Object]';

         arr.toString === '';  说明Array.prototype.toString方法被改了;

    8、处于活动状态的执行上下文只有一个;

         作用域是一个抽象的概念,其中没有变量,要通过作用域对应的执行上下文来获取变量的值,且不同的调用会产生不同的上下文;

         函数是在定义时就确定了函数体内部自由变量的作用域;

         除了全局作用域,只有函数是可以创建一个独立的作用域;

         要取一个变量的值,要到创建它的函数的那个作用域中取值,这就是所谓的静态作用域;

         在A作用域中使用的变量a,却没在A中声明,则称a是自由变量;

    9、this指向

    • 函数作为构造函数用,this指向new出来的对象;
    • 函数作为对象的一个属性被调用,this指向该对象;
    • 在call、apply中,this指向传入的对象;
    • 全局调用普通函数,this指向window;

    10、闭包特性:函数嵌套函数;函数内部可引用外部变量;变量不会被回收。

          闭包是指有权访问另一个函数作用域中的变量的函数,闭包缺点是容易内存泄露。

           垃圾回收原理:在js中,如果一个对象不再被引用,那么这个对象就会被GC回收; 如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

  • 相关阅读:
    Update SSM agent to each EC2 via Bat and bash script
    Shell脚本循环读取文件中的每一行
    通过psexec实现远程安装软件包
    Getting Private/Public IP address of EC2 instance using AWS-cli [closed]
    Python to list users in AWS
    BAT script to set local account password never expire
    Difference between Netbios and Host name
    PowerShell官方文档
    powershell for rename server name
    Create a conditional DNS forwarder on our domain.com to Amazon default DNS provider
  • 原文地址:https://www.cnblogs.com/colima/p/5882433.html
Copyright © 2011-2022 走看看