`
Zhongwei_leg
  • 浏览: 552172 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

swfupload 源码阅读笔记二

阅读更多

 

SWFUpload.prototype.initSWFUpload = function (settings) {
        try {
                this.customSettings = {};       // A container where developers can place their own settings associated with this instance.
                this.settings = settings;
                this.eventQueue = [];
                this.movieName = "SWFUpload_" + SWFUpload.movieCount++;
                this.movieElement = null;
        // 略

 

注意:

SWFUpload.movieCount 是在 SWFUpload.prototype.initSWFUpload 语句之后定义的,

SWFUpload.movieCount = 0;

 

也就是说,要么,prototype.initSWFUpload 只是注册声明的作用,并没有被执行;要么,静态成员的初始化要先于对象成员的初始化。

 

做一个实验:

<html>
        <head>
                <script type="text/javascript">
                        //var a = 2;
                        var a;
                        if (a === undefined) {
                                alert("a is undefined.");
                                a = function(){this.initA();};
                                alert(a);
                        } else {
                                alert("a is defined.");
                        }
                
                        a.prototype.initA = function () {
                                this.count = ++a.start;
                                alert("initA: a = " + this.count); 
                        };
                        alert("before assignment of a.start");
                        a.start = 0;
                        var b = new a();
                        
                </script>
        </head>
        <body>
                
        </body>
</html>
 

执行结果是:

a is undefined.

function () {
    this.initA();
}

before assignment of a.start

initA: a = 1

 

这个只是验证了 “prototype.initSWFUpload 只是注册声明的作用,并没有被执行”。同时说明 a = function(){this.initA();}; 只是定义了 a 这个类,而不是真正的初始化;只有 var b = new a(); 才是真正的初始化。

 

将 a.start = 0; 替换到 var b = new a(); 后面,则显示

initA: a = NaN


所以静态成员必须人为地放到相关的 public 对象的初始化之前。

 

// ---------------------------------------

补充参考,关于javascript 类定义中,private, privileged, public, static member 的实现:

http://robertnyman.com/2008/10/14/javascript-how-to-get-private-privileged-public-and-static-members-properties-and-methods/

 

分享到:
评论
1 楼 三尺寒冰 2011-07-20  
深刻呀。。。。

相关推荐

    SWFUpload.swf源码以及支持qtp

    SWFUpload是一个流行的JavaScript库,它允许网页在后台无刷新地上传...这个压缩包中的"SWFUpload.swf"很可能是经过修改以支持QTP的源代码版本,对于使用QTP进行Web应用测试的开发者来说,这是一个非常有价值的资源。

    swfupload使用实例和源代码

    实例与源代码 提供的压缩包中,可能包含了实现上述功能的示例代码。`stcaiyun.ttf`可能是用于字体渲染的资源,而`7880.com.txt`可能是包含示例说明或配置信息的文本文件。根据这些资源,你可以更深入地学习如何...

    PHP版SWFUpload源码(可获取上传文件名)

    【PHP版SWFUpload源码(可获取上传文件名)】是一个基于JavaScript和Flash的文件上传组件,适用于PHP环境。SWFUpload是一个流行的开源项目,它允许用户在后台批量上传大文件,同时提供了友好的用户体验。这个特定...

    SwfUpload2.5源代码和release 修复XSS 优化swfupload.js

    这个2.5版本的源代码和release包含了对XSS(跨站脚本攻击)的修复,以及对核心组件`swfupload.js`的优化,提升了整体的安全性和性能。 首先,我们来深入了解SwfUpload的工作原理。SwfUpload使用Flash技术,创建一个...

    swfupload文件上传源码ASP

    这个"SWFUpload文件上传源码ASP"是针对ASP(Active Server Pages)开发的,旨在为ASP应用程序提供一个用户友好的多文件上传解决方案。下面将详细阐述SWFUpload的工作原理以及如何在ASP环境中集成和使用它。 1. **...

    SWFUpload控件源码

    在实际开发中,开发者需要下载SWFUpload v2.2.0.1 Core这个压缩包,解压后会包含SWFUpload的JavaScript库、Flash电影(.swf文件)、示例代码和文档,通过阅读文档和示例,可以快速了解如何在项目中使用这个组件。...

    swfupload asp版 asp上传大文件,批里上传

    在`upload_5xsoft.asp`和`index.asp`中,可能包含了使用SWFUpload的示例代码和页面结构。 4. **CSS和图片**:在css和images目录下的文件用于美化上传界面,如进度条的样式和按钮的图标。 5. **JavaScript设置**:...

    SWFUpload上传控件源码

    做项目往往都需要上传文件的功能 但微软自带的上传控件 往往并不能满足我们的需求 以前一直使用 FileUpload ,客户逐渐提出新的需求,迫使不得不改用新...SWFUpload谁然依赖于flash,但在我看来,还是一个不错的选择

    SwfUpload多文件上传演示版源码_swfuploaddemo.zip

    通过分析和学习SwfUpload多文件上传演示版源码,开发者不仅可以掌握SwfUpload的用法,还能了解到如何在实际项目中实现文件上传功能,提升Web应用的用户体验。同时,这也为其他富客户端组件的学习和应用提供了基础。

    swfupload

    要调试或学习SWFUpload,你可以通过解压提供的示例文件,运行在本地服务器环境中,查看源代码并尝试修改,以便理解其工作原理和如何与其他服务器端技术结合使用。 总结,SWFUpload是一个功能强大的Flash上传组件,...

    SwfUpload的用法Demo

    这些文件通常可以从SwfUpload的官方网站或者其他可靠的源获取。然后,你需要配置SwfUpload实例,设置如上传URL、文件类型限制、上传参数等属性。 例如,创建一个SwfUpload实例的简单步骤如下: 1. **初始化...

    SWFupload

    SWFupload是一个经典的文件上传组件,它利用JavaScript和Flash技术,为用户提供了一种高效、便捷的多文件上传功能。在Web应用中,尤其是在处理大量用户文件上传时,SWFupload的出现极大地改善了用户体验,避免了传统...

    SWFUpload v2.2.0.1源码及使用例子

    首先,SWFUpload的核心组件是`SWFUpload v2.2.0.1 Core.zip`,这个压缩包内包含了SWFUpload的主要源代码和相关资源文件。源码提供了对上传过程的详细控制,包括设置上传参数、处理上传进度、错误处理等。开发者可以...

    SWFUpload多附件上传组件源码

    总之,SWFUpload是一个强大且灵活的多文件上传解决方案,其源码可以帮助开发者深入了解文件上传机制,并根据项目需求进行定制和优化。通过熟练掌握SWFUpload,开发者可以提升Web应用的文件上传功能,提供更好的用户...

    swfupload说明

    对于想要深入了解SWFUpload内部机制的开发者,可以研究其源码,了解Flash与JavaScript之间的通信机制、事件处理流程等。 7. **工具整合** SWFUpload 可以轻松与后端框架(如PHP、ASP.NET、Java)集成,配合数据库...

    SWFUpload自定义控件(c#源码)

    关于标签,“SWFUpload”是指这个组件本身,“c#”表明了源码是用C#语言编写的,“源码”则意味着提供了完整的源代码,开发者可以查看、学习甚至修改源代码以适应特定需求。这对于学习SWFUpload的工作原理和扩展其...

    SwfUpload多文件上传演示版源码

    SwfUpload演示版源码 SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 SWFUpload的主要特点  ...

    swfupload网友修改版

    3. **upload.as**:这是AS3(ActionScript 3)源代码文件,是Flash的编程语言。在这个文件中,可能包含了SWFUpload的核心上传逻辑,包括文件选择、上传初始化、与服务器通信、进度更新等操作。修改版可能会在此处有...

    swfupload_asp.net_4.0示例源码

    【SWFUpload ASP.NET 4.0 示例源码解析】 SWFUpload 是一款经典的JavaScript与Flash结合的文件上传组件,它允许用户在网页上实现拖拽上传、批量上传等功能,而无需刷新页面。本示例源码是针对ASP.NET 4.0框架设计的...

    swfupload flash上传兼容所有浏览器

    SWFUpload 是一款开源的Flash上传组件,它在过去的网页开发中被广泛使用,尤其在应对多文件上传和处理大文件上传时具有显著优势。它的核心功能是利用Flash技术实现跨浏览器的文件上传,即便是在那些不支持HTML5的旧...

Global site tag (gtag.js) - Google Analytics