`
lz850610
  • 浏览: 1150 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一段代码的疑问

阅读更多
Function.prototype.method = function(name, func) {
    this.prototype[name] = func;
    return this;
};

// A (rather complex) function that allows you to gracefully inherit
// functions from other objects and be able to still call the  'parent'
// object's function
Function.method('inherits', function(parent) {
    // Keep track of how many parent-levels deep we are
    var depth = 0;

    // Inherit the parent's methods
    var proto = this.prototype = new parent();

    // Create a new 'priveledged' function called 'uber', that when called
    // executes any function that has been written over in the inheritance
    this.method('uber', function uber(name) {

        var func; // The function to be execute
        var ret; // The return value of the function
        var v = parent.prototype; // The parent's prototype

        // If we're already within another 'uber' function
        if (depth) {
            // Go the necessary depth to find the orignal prototype
            for ( var i = d; i > 0; i += 1 ) {
                v = v.constructor.prototype;
            }

            // and get the function from that prototype
            func = v[name];

        // Otherwise, this is the first 'uber' call
        } else {
            // Get the function to execute from the prototype
            func = proto[name];

            // If the function was a part of this prototype
            if ( func == this[name] ) {
                // Go to the parent's prototype instead
                func = v[name];
            }
        }

        // Keep track of how 'deep' we are in the inheritance stack
        depth += 1;

        // Call the function to execute with all the arguments but the first
        // (which holds the name of the function that we're executing)
        ret = func.apply(this, Array.prototype.slice.apply(arguments, [1]));

        // Reset the stack depth
        depth -= 1;

        // Return the return value of the execute function
        return ret;
    });

    return this;
});



这段代码的作用,这个for循环是不是有问题
  for ( var i = d; i > 0; i += 1 ) {
                v = v.constructor.prototype;
            }

分享到:
评论

相关推荐

    斑马易语言代码段管理器支持库v2.2

    记得在用微软的VS2005的时候看到有代码段管理器的功能,所以一时想起易语言是否 可以做一个呢,因此此软件就诞生了,起初软件相对简单,经过易友一步一步的提意 见,本软件也一步步完善,目前支持双击代码加入...

    sg.rar_sg自瞄代码

    为了深入理解并使用这段代码,你需要具备一定的编程基础,了解相关脚本语言的语法,同时还需要知道如何在游戏中应用外部脚本。需要注意的是,使用此类辅助工具可能会违反游戏的公平竞争规则,甚至可能导致账号被封禁...

    7段LED HEX 代码生成器

    【7段LED HEX代码生成器】是一款专为电子工程师和爱好者设计的实用工具,它能够帮助用户快速便捷地生成7段LED显示器所对应的十六进制编码。7段LED显示器通常用于数字和字母显示,每个字符由7个独立的发光二极管组成...

    在线服务代码

    - 第一部分是一段`<script>`标签,需要放置在网页源代码的`<body>`标签关闭前,用于追踪和统计访问者的行为。代码中的`s`和`c`参数是用于标识和追踪的特定字符串。 - 第二部分是一个链接形式的代码,如果第一部分...

    如何阅读他人的程序代码.pdf

    每次完成一段代码的阅读后,都应该进行总结和反思。思考以下几个问题: - 我从中学到了哪些新知识? - 这些代码有哪些地方可以优化? - 如果是我来编写这段代码,会采取怎样的实现方式? #### 八、实践应用 理论...

    简单的人工智能程序ELIZA的C源程序代码

    源代码文件"ELIZA.C"包含的就是ELIZA程序的源代码,开发者可以通过阅读和分析这段代码来学习如何用C语言实现这样的文本处理程序。 "ELIZA.EXE"是一个可执行文件,它是编译后的ELIZA程序,可以在支持C语言运行环境的...

    Dtu 解决方案 源代码GPRS DTU方案 包括项目所有代码、原理图、PCB文件 本项目经历过4个月的测试,bug总量在一

    最后,此套方案不是一段程序而是一套可以用于实际生产环境的解决方案,在此基础进行二次开发或者直接作为一个模块嵌入自己的产品都可以大大加快开发速度,节省大量的成本。 这个方案是一个DTU解决方案,其中包括了...

    手把手让你的电磁四轮跑起来

    1.智能车电磁组基础代码,代码思路与笔者系列博客一致,只是一个简单的寻迹代码,没有元素,距离参赛还有一段距离,需要自己去深挖。 2.IO口与逐飞STC16核心板配套。 3.代码量不大,有疑问的尽量自己解决,用的前...

    来了!PSIM一键自动生成嵌入式代码技术

    本人接触PSIM已有一段时间,网上关于psim的自动生成嵌入式代码的资料少之又少,一直是自己在不断的摸索,现把关于PSIM自动生成代码技术方面收集的参考指南传上,方便各位参考学习,有疑问可私聊本人探讨。

    LCS的实现代码

    最长公共子序列(Longest ...通过对这段代码的分析,我们可以更深入地理解动态规划的实现细节,以及如何在实际编程中应用这些理论知识。如果你对代码有任何疑问,或者想要进一步讨论LCS算法的其他方面,欢迎继续提问。

    车速计算源代码

    在汽车控制系统中,车速计算是一项至关重要的任务,它涉及到行车安全、驾驶辅助系统...如果你对这段车速计算源代码有任何疑问,可以通过留言或电子邮件(tianhua_ming@126.com)与作者进行交流,共同探讨和优化代码。

    分布式事务源代码

    分布式事务是一种在分布式系统中处理数据一致性的重要技术。在大型网络应用中,数据往往分散在多个数据库或服务器上,为了保证这些数据的一致性,就需要使用分布式...如果你在学习过程中遇到任何疑问,欢迎留言讨论。

    S3C2440启动代码中文注释(自己的理解)

    启动代码,也称为引导加载器(Bootloader),是系统启动时运行的第一段程序,负责初始化硬件环境,为操作系统加载做准备。在S3C2440中,这个过程通常由汇编语言编写,因为这是系统启动时唯一能可靠执行的代码。 1. ...

    python项目实例源码 实例-02 代码雨

    3. **延迟执行**:为了实现雨滴逐个下落的动画效果,我们可以使用time模块中的sleep()函数,让程序在每次打印一行代码后暂停一段时间。 4. **字符滚动**:更进阶的代码雨可能还会包含字符滚动效果,即代码字符不仅...

    智能水表c##代码

    ### 关键代码段解析 #### 代码片段分析 代码片段中的部分数据似乎是乱码,但其中包含了一些重要的结构体定义和操作,这些内容对于理解智能水表的工作原理和通信协议至关重要。 ```csharp [StructLayout(LayoutKind...

    matlab不运行一段代码-mcsk-java:mcsk-java

    matlab不运行一段代码Panako –声学指纹 Panako是一个系统。 该系统能够从音频流中提取指纹,并将这些指纹存储在数据库中,或者找到提取的指纹与存储的指纹之间的匹配项。 Panako中实现了几种声学指纹算法。 Panako...

    条件平差的代码 摘抄

    这段代码可能是用某种编程语言(如Python、C++或Matlab)编写的,通过读取数据、定义观测和条件方程,然后进行计算和输出结果。如果你对代码的具体细节有疑问,或者需要进一步的理解,可以提供更详细的代码片段,...

    python程序设计刘卫国实验指导代码详解

    通过编写条件判断和循环结构的代码,学生可以学习如何根据特定条件执行不同的代码块,以及如何重复执行某段代码直到满足特定条件。这部分的代码会涉及列表遍历、索引访问以及嵌套循环等概念。 实验3可能涉及到函数...

    VB获取本机计算机名及IP地址的源代码

    这段代码首先通过`Dns.GetHostEntry`方法获取主机信息,然后遍历所有IP地址,筛选出IPv4类型的地址并打印出来。 以上两段代码分别实现了获取计算机名和IP地址的功能。在实际应用中,你可以根据具体需求进行调整,...

Global site tag (gtag.js) - Google Analytics