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...