zoukankan      html  css  js  c++  java
  • 方法链、作用域链和原型链(一)——方法链

    方法链:当方法的返回值是一个对象时,这个对象还可以再调用它的方法。这种方法调用序列中,每次调用的结果都是另外一个表达式的组成部分。

    比如:基于jQuery库,我们通常会写类似如下代码:

    $(this).next().show().siblings("li[class!=header]").hide();

    如果在设计的API中,每个方法都返回this,使用API就可以进行“链式调用”风格的编程。在这种风格的编程中,只要指定一次调用的对象,余下的方法都可以基于此方法进行调用:

    shape.setX(100).setY(200).setSize(300);

     注意:this是一个关键字,不是变量,也不是属性名,不可以给this赋值。

    和变量不同,this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this。如果嵌套函数作为方法调用,其this的值指向调用它的对象;如果嵌套函数作为函数调用,其this值不是全局对象(非严格模式),就是undefined(严格模式)。

    调用嵌套函数时,this并不会指向调用外层函数的上下文。如果想访问这个外部函数的this值,需要将this的值保存在一个变量里,这个变量和内部函数在同一个作用域内。通常用self变量保存this,如:

    var o={
        m:function(){
            var self=this;
            console.log(this===o);//true
            f();
            function f(){
                console.log(this===o);//false
                console.lgo(self===o);//true
            }
        }
    };
    o.m();
  • 相关阅读:
    Nokia N78拍照最佳设置!
    摩托Milestone购机鉴别篇
    sdf
    js随笔
    jssip无法识别以数字开始的域
    ASP.NET页面生命周期与优化
    在SQLServer2005中使用全文搜索
    简析正则表达式
    《WCF编程》之错误
    《WCF编程》之实例管理
  • 原文地址:https://www.cnblogs.com/aaron-shu/p/4184849.html
Copyright © 2011-2022 走看看