zoukankan      html  css  js  c++  java
  • js知识点

    javascript

    01.JavaScript-闭包

    有权访问另一个函数作用域内变量的函数都是闭包

    var person = function(){
        var name = "default";
        return {
            getName:function(){
                return name;
            },
            setName:function(NewName){
                name = NewName;
            }
        }
    }();
    print(person.name); //undefined
    print(person.getName); //"default"
    person.setName("weizai");
    print(person.name); //"weizai"
    

    02.JavaScript-原型和原型链

    对于所有的对象,都有__proto__属性,这个属性对应该对象的原型.
    对于函数对象,除了__proto__属性之外,还有prototype属性,当一个函数被用作构造函数来创建实例时,该函数的prototype属性值将被作为原型赋值给所有对象实例(也就是设置实例的__proto__属性)
    1.原型对象
    js中 函数对象其中一个属性 原型对象prototype。p普通对象没有prototype属性 有__proto__ 。 原型的作用是给这个类的每一个对象都添加一个统一的方法。在原型中定义的方法和属性都是被所有对象实例共享

    var persion = function(name){
        this.name = name
    };
    person.prototype.getName = function(){
        //设置函数对象属性
        return this.name;
    }
    var zxj = new person('test');
    zxj.getName(); //zxj继承getName属性
    

    2.原型
    proto : js创建对象的内置属性 用于指向创建它的函数对象prototype
    (js内部使用寻找原型链的属性。实例化一个对象时,内部会创建一个__proto__属性并把prototype赋值给它)

    下图为原型链运行图解,当我们实例一个对象之后,调用它的内部方法,
    他的运行顺序是先找自身有没有该方法,如果没有就会通过__proto__属性想上层寻找,一直寻找到Object对象中,如果还没有才会报错null
    p.proto----->Persion.proto---->object.proto----->null

    03.JavaScript-作用域和作用域链

    1. 全局作用域(Global Scope)

    1.最外层函数和在最外层函数外面定义的变量拥有全局作用域

    var authorName="山边小溪";
    function doSomething(){
        var blogName="梦想天空";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(authorName); //山边小溪
    alert(blogName); //脚本错误
    doSomething(); //梦想天空
    innerSay() //脚本错误
    

    2.所有末定义直接赋值的变量自动声明为拥有全局作用域

    function doSomething(){
        var authorName="山边小溪";
        blogName="梦想天空";
        alert(authorName);
    }
    doSomething(); //山边小溪
    alert(blogName); //梦想天空
    alert(authorName); //脚本错误
    

    3.所有window对象的属性拥有全局作用域
    window.name、window.location、window.top

    1. 局部作用域(Local Scope) 
      和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域,例如下列代码中的blogName和函数innerSay都只拥有局部作用域。
    function doSomething(){
        var blogName="梦想天空";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(blogName); //脚本错误
    innerSay(); //脚本错误
    

    在编写代码的时候应尽量少使用全局变量,尽可能使用局部变量。一个好的经验法则是:如果一个跨作用域的对象被引用了一次以上,则先把它存储到局部变量里再使用

    04.JavaScript-执行流与错误影响范围

    05.JavaScript-基础重点

    06.JavaScript-类型转换

    07.JavaScript-call-apply
    call 调用一个对象的一个方法,以另一个对象替换当前对象
    apply 应用某一对象的一个方法,用另一个对象替换当前对象。

    08.JavaScript-事件和事件委托

  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/weizaiyes/p/8193010.html
Copyright © 2011-2022 走看看