JavaScript进阶:面向对象与前端交互
"JavaScript进阶基础,涵盖了面向对象、前后端交互、cookie管理和jsonp解决跨域问题等内容。" 在JavaScript中,面向对象是一种重要的编程模式,它让我们能够通过模拟现实世界中的对象来组织代码,提高代码的可维护性和复用性。面向对象主要关注的是对象,而不是执行的过程。 6.1 面向对象基础 6.1.1 创建对象的方式 - **字面量创建对象**:最简单的创建对象的方式,直接通过键值对的形式定义对象。 ```javascript var obj1 = {name: "张三", age: 15}; ``` - **构造函数创建对象**:通过`new`关键字和函数来创建对象,这种函数被称为构造函数。 ```javascript function User() { this.name = "李四"; this.age = 15; } var obj2 = new User(); ``` - **工厂模式**:一种创建对象的抽象方法,可以返回一个新对象,但不指定具体的类型。 ```javascript function createObj(name, age) { var o = {}; o.name = name; o.age = age; return o; } ``` - **自定义构造函数**:推荐使用,可以自定义特定的行为。 ```javascript function createUser(name, age) { this.name = name; this.age = age; } var u = new createUser("陈二", 20); ``` 6.1.3 注意事项 - 构造函数的首字母通常大写,以示区分。 - 构造函数不写`return`语句也会返回新创建的对象。 - 当构造函数作为普通函数调用时,`this`指向全局对象(在浏览器中是`window`),不应在此场景下使用`this`。 - 当构造函数通过`new`关键字调用时,`this`指向新创建的对象。 6.1.4 面向对象原型 JavaScript的原型允许对象共享属性和方法,减少内存消耗。每个函数都有一个`prototype`属性,可以通过`__proto__`或`Object.getPrototypeOf()`访问。创建的实例可以通过`prototype`链向上查找属性和方法。 接下来是前后端交互,这通常涉及到发送HTTP请求获取数据。在HTTP协议中,由于其无状态特性,每次请求都是独立的,无法识别用户身份。为了解决这个问题,可以使用**cookie**存储用户信息,服务器通过读取cookie来识别用户。 6.8 Cookie管理 Cookie用于存储客户端的状态信息,通过`document.cookie`可以设置和读取cookie。每次HTTP请求时,浏览器会自动将cookie包含在请求头中。 9. JSONP解决跨域问题 由于同源策略的限制,JavaScript不能跨域请求资源。JSONP(JSON with Padding)是一种跨域数据交互协议,它利用`<script>`标签可以跨域加载的特点,通过动态创建`<script>`标签并设置`src`属性来实现跨域请求。 前后端交互的另一种常见方式是使用`XMLHttpRequest`或现代的`fetch` API发送Ajax请求,配合服务器设置CORS(跨源资源共享)策略,也可以实现跨域。 JavaScript进阶基础涵盖了许多核心概念,包括面向对象、前后端交互、状态管理以及跨域解决方案,这些都是JavaScript开发者必备的知识。深入理解和掌握这些概念,有助于提升开发效率和编写出更健壮的代码。
![](https://csdnimg.cn/release/download_crawler_static/87321266/bg9.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87321266/bga.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87321266/bgb.jpg)
剩余50页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/ec665b8b707549a0b40609bfce74d1fa_weixin_41957626.jpg!1)
- 粉丝: 457
- 资源: 77
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)