zoukankan      html  css  js  c++  java
  • 十五的学习日记20161005

    十五的学习日记20161005

    JavaScript

    对象创建方法:

    • new方法和原理
    function C(){},c=new C;
    <=>
    c={},C.call(c),Object.setPrototypeOf(c,C.prototype)
    
    • Object.create()方法(注意只用在构造函数的扩展上!!!)
    //Shape - superclass
    function Shape() {
      this.x = 0;
      this.y = 0;
    }
    
    Shape.prototype.move = function(x, y) {
        this.x += x;
        this.y += y;
        console.info("Shape moved.");
    };
    
    // Rectangle - subclass
    function Rectangle() {
      Shape.call(this); //call super constructor.
    }
    
    Rectangle.prototype = Object.create(Shape.prototype);
    
    var rect = new Rectangle();
    
    rect instanceof Rectangle //true.
    rect instanceof Shape //true.
    
    rect.move(1, 1); //Outputs, "Shape moved."
    

    你不知道的JS第二册
    第一章
    JavaScript语法深入
    内核分三个部分: 编译器-作用域-执行引擎
    RHS和LHS,有区别.
    当右值引用查询失败,会抛出引用错误

    程序编译执行的三个基本步骤:

    • 标记与词法: 将代码从字符串转到机器语义明确的位置
    • 语法分析: 将标记生成语法树(AST)
    • 代码执行: 根据AST进行对应操作
      程序编译执行的三个基本角色
    • 引擎: 编译并执行, 贯穿整个流程
    • 编译器: 引擎的朋友,处理底层代码
    • 作用域: 收集保管声明了的变量列表, 规定查找变量的规则.

    第二章词法作用域
    作用域主要分成两类

    1. 词法作用域
    2. 动态作用域
      词法欺骗: eval和with

    第三章 函数与块级作用域
    const/let会把变量绑定到任何{}符号内部
    catch特殊条件下才能访问

    JS除了catch和with还有let外只有函数作用域,没有别的块级作用域.这意味着所有的作用域分层操作都需要由函数来完成.

    书中建议不使用匿名函数.
    标准模块定义方法:

    var a = 2;
    (function IIFE( def ){
    def( window );
    })(function def( global ){
    var a = 3;
    console.log( a ); // 3
    console.log( global.a ); // 2
    });
    
  • 相关阅读:
    计网第一章——基本概念
    计网第二章——应用层
    命令行测试邮件发送工具mailsend-go
    CentOS-7-x86_64-DVD-2009 rpm包列表(centos7.9)
    CentOS-7-x86_64-Everything-2009 rpm包列表(CentOS7.9)
    Centos发行版ISO镜像中rpm包列表
    nginx使用记录
    centos resolv.conf
    python cookbook
    ansible中变量和主机名
  • 原文地址:https://www.cnblogs.com/always-naive/p/5933799.html
Copyright © 2011-2022 走看看