`
lz850610
  • 浏览: 1161 次
  • 性别: 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;
            }

分享到:
评论

相关推荐

    EM算法R代码及疑问.pdf

    这段代码帮助读者理解EM算法如何在实际编程中得以实现,并且展示了如何利用代码解决实际问题。代码中可能包含了一些函数和语法,比如如何在R中调用分布函数,如何进行数组操作以及如何设置控制语句等。 综合来看,...

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

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

    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自动生成代码技术方面收集的参考指南传上,方便各位参考学习,有疑问可私聊本人探讨。

    如何读懂他人的代码.pdf

    在软件开发领域,阅读和理解他人的代码是一项基本且至关重要的技能。不论你是新手开发者还是经验丰富的工程师,难免会遇到需要维护或扩展他人代码的情况。掌握如何有效阅读他人代码,不仅能提升工作效率,还能深化对...

    LCS的实现代码

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

    车速计算源代码

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

    分布式事务源代码

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

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

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

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

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

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

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

    智能水表c##代码

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

    条件平差的代码 摘抄

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

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

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

Global site tag (gtag.js) - Google Analytics