问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js面向对象封装ajax

发布网友 发布时间:2022-04-29 08:25

我来回答

2个回答

热心网友 时间:2022-04-18 02:36

如果把AjaxRequest当作方法不用new直接调用,函数里的this就会是是net对象,AjaxRequest.prototype里的方法就不能直接调用了,感觉AjaxRequest封装的不够好,理解都费了半天的劲。


onReadyState是AjaxRequest函数得一个属性,和AjaxRequest实例对象没有任何关系,他的this为AjaxRequest函数,onReadyState这个函数在调用时用了call方法把this改成了AjaxRequest实例对象,从整个代码来看onReadyState完全可以用var声明,而不要放到AjaxRequest下面,更容易理解,更简单的就是也放到prototype里头。

从而loader=this,this表示的是AjaxRequest实例对象【不是XMLHttpRequest对象,XMLHttpRequest没有req属性的】


分析代码可以猜测,.net里放了一堆相关的操作方法,而每个操作方法定义的变量函数都要隔离开来,因此可以更简单更容易理解的实现(从jquery里学来的)

var net={
    //完完全全当做方法使用,而不用new了
    AjaxRequest:(function(){
        var AjaxRequest=function(url,onload){};
        AjaxRequest.prototypt={
            loadData:function(){
                //着重onReadyState放到prototypt的改写过程
                var This=this;//保存当前对象,不然onreadystatechange的this为window还是XMLHttpRequest?
                this.req.onreadystatechange=function(){
                    This.onReadyState();
                };
            }
            ,onReadyState:function(){}
        };
        //net.AjaxRequest其实等于这个函数,他返回了一个对象从而不用new
        return function(url,onload){
            return new AjaxRequest(url,onload);
        };
    })()
    ,其他功能:function(){}
    ,其他功能x:function(){}
};

热心网友 时间:2022-04-18 03:54

在js中, function也是对象.

net也是对象

var net = new Object(); //声明一个object对象
//alert(typeof net); //object
net.AjaxRequest = function(){}; //声明一个function对象
//alert(typeof net.AjaxRequest); //function

3. 在这里this指的是net.AjaxRequest


4. net.AjaxRequest.onReadyState 不加prototype是因为在22行要通过 "对象.方法" 的方式直接调用



你问的这几个问题,研究起来会有点深.. 相关连接我放到评论里.

js与Jquery的区别是什么

1、js 全称 javascript 是 web客户端 运行的 解释性语言。2、jquery 只不过是 js 封装 简化了 ajax 和 dhtml 的 一款js 框架而已。

web前端开发需要掌握的几个必备技术

从内存角度到理解JS面向对象、基本类型、复杂类型、原型链、ES6中的面向对象、属性读写权限、设置器、访问器。面向对象三大特征:继承性、多态性、封装性、接口。设计模式:面向对象编程思维、单例模式、工厂模式、策略模式、观察者模式、模板方法模式、代理模式、装饰者模式、适配器模式、面向切面编程。第五...

javascriptjavascript成熟分类

其次,JavaScript具备面向对象的编程能力,允许开发者使用封装、继承和多态等概念,编写更加模块化和可复用的代码。此外,JavaScript还支持事件驱动和异步编程模型,为开发者提供了灵活而高效的编程方式。3. JavaScript在网页开发中的应用 JavaScript是网页开发的核心技术之一。它可以与HTML和CSS紧密结合,实现丰富...

求推荐一个web前端的学习路线

web前端学习顺序:①计算机基础以及PS基础 ②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)③移动开发 ④前端高级开发(ECMAScript6、Veu.js框架开发、webpack、前端页面优化、React框架开发、AngularJS 2.0框架开发等)⑤小程序开发 ⑥全栈开发(MySQL数据库、Python编程语言...

Ajax技术是否封装了JDBC访问数据库的代码

两者相差甚远,没有关系,这样ajax是无法封装JDBC的,再说ajax是使用Javascript语言的,是过程性语言,而封装是面向对象语言的术语,两者的差别很大。【3】不过可以使用ajax来“访问“到JDBC代码。它也不过能够提交请求和接收服务器反馈(可以进行一定处理),其他的它鞭长莫及。

前端开发需要学什么啊?

1、HTML语言 掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。HTML是一种标记语言,能够实现Web页面并在浏览器中显示...

javascript的“特效”也太难学了吧!有高人能提供一下学习经验么?_百度...

然后是C++,真正第一次接触了对象编程,也懂得了如何把事物抽象成为一个类,有了面向对象的思维,还有C++的语法,有C基础其实也挺容易的,但后来发现C++真正的难点是如何理解和使用别人的类,那时眼框还很窄,思维也不开阔,计算机英语不好,就只知道在控制台里写属于自己的程序,不懂得去使用类库里的...

.JS有哪些框架

Prototype (JS OO library):是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,以prototype为核心,形成了一个外围的各种各样 的JS扩展库,是相当有前途的JS底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR集成的AJAX JS库),之上还有 Scriptaculous 实现一些JS组件功能和...

jsp和jquery区别(jsp与js)

javascript:js脚本语言,主要目的是为了解决服务器端语言,客户端Web开发的脚本语言,常用来给HTML网页添加动态功能 jquery:可以认为是封装好的javascript,能更方便地处理HTMLdocuments、events、实现动画效果 ajax:局部刷新,异步请求,处理xml,等等,jsp:它是在传统的网页HTML文件(*.htm,*.html)中插入...

jquery是什么啊?

prototype是一个易于使用、面向对象的JavaScript框架。它封装并简化和扩展一些在Web开发过程中常用到JavaScript方法与Ajax交互处理过程。script.aculo.us script.aculo.us 是一个易于使用,支持多种浏览器,用于增强Prototype的JavaScript框架。script.aculo.us包含:动画框架(animation framework),拖放(drag and...

js是基于对象还是面向对象 js是面向对象还是面向过程 面向对象如何实现封装 面向对象封装是什么 面向对象中如何封装 面向对象封装的目的 面向对象封装继承多态定义 java面向对象详解 java面向对象的三大特征
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? 电脑开机很长时间屏幕才亮,为什么? 电脑开机很久屏幕才亮怎么办 如何封装ajax函数 开机后,电脑屏幕要很久才会出来,这是什么原因? 电脑显示器反复启动很多次才亮什么原因? 电脑开机后,显示器好久才亮是怎么弄的? 开机好久显示器才亮是怎么回事 电脑开机后显示屏等很久才亮 电脑开机很慢 开机屏幕点亮很慢 开机自检时要等好久 电脑开机两个小时屏幕才亮,是什么问题? 电脑开机显示屏很久才亮 家里的wifi换了,以前的无限打印机现在没法使了,是不是因为换了网的原因?怎么弄?谢谢!_百度问一问 电脑开机半天显示屏才亮、什么原因?显示屏是好的 电脑开机后很久显示器才亮是什么原因? 电脑开机要5分钟才亮屏幕? 一杯小酒两人喝猜三数字 慎勺小酒一杯是不是意思? 聚会的时候喝了一小杯酒,还能继续开车吗? 特别喜欢早上起来喝一杯白酒,会不会对身体有什么影响?应该怎样缓解?_百... 小酒要喝,不宜过多,这句话谁说的 台式电脑开机,大约延迟十五秒显示器屏幕才亮起来,才开机,这是怎么回事? 电脑显示屏启动慢,开机要等很久才能亮 如何使用AJAX?使用AJAX的时定义的那个函数怎么写的?还有创建完对象后的... 为什么我家电脑启动后,显示屏要好久才能亮。 跪求封装一个关于ajax 的js或者jquery函数 ajax加载的页面 怎么执行js 有什么好的方法么 利用js中的ajax实现如图这种功能,本人是菜鸟勿喷。 js ajax可以实现什么功能 javascript如何实现ajax jquery ajax $.ajax如何使用自定义函数? JS如何等ajax执行完毕后再继续执行后续函数 jquery ajax success 后怎么调用 其它的 功能函数 jquery里ajax中怎么将函数中的数据提取出来,放在另外一个其他函数中使用... 如何在正在电脑中播放的电影进行截图. 怎么把电影里的镜头截下来做图片啊? 对电脑中正在播放的片子如何进行截屏,有何软件可用? 我想看电影的时候截图该怎么做? 在电脑上看电影时,怎样截屏??? 用电脑看电影的时候怎么截图 想对电影的精彩画面进行截图要怎么做啊?截图会保存在那里面?