《Windows 8 开发权威指南:HTML5 和JavaScript卷》——1.4 Visual Studio 2012新特性

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 测试步骤可以包含多行整合您的测试用例中的单个测试步骤中相关的操作。 Microsoft 测试管理器现在也有一个工具栏,可以使用这个工具栏设置测试步骤的文本格式。你可以使用不同的格式设置选项,如粗体、下划线或颜色突出显示,以强调要点。

本节书摘来自异步社区《Windows 8 开发权威指南:HTML5 和JavaScript卷》一书中的第1章,第1.4节,作者:尹成 , 李亚男 , 王腾 , 丁宽帅 , 尹子磊著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 Visual Studio 2012新特性

1.4.1 Windows Microsoft Design样式应用程序
1.设计和构建Microsoft Design Style样式应用程序
通过1.3节我们对Microsoft Design样式应用程序有了一个基本的了解。

使用默认项目模板构建Microsoft Design样式应用程序,这些模板为不同的Microsoft Design样式应用程序提供了文件、资源和结构。

使用 XAML 和 C+ +、C# 或 Visual Basic构建Microsoft Design样式应用程序。

使用JavaScript构建Microsoft Design样式应用程序。

使用 HTML以可视方式设计Microsoft Design样式应用程序。可以使用混合(Blend)把应用程序控件拖动到设计界面上,然后对其进行处理,并设置其属性。

使用XAML以可视方式设计Microsoft Design样式应用程序。您可以使用 XAML 设计器把应用程序控件拖动到设计界面上,然后对其进行处理,并设置其属性。

2.调试、优化和发布Microsoft Design 样式应用程序
使用针对Visual Studio的传统调试模式对Microsoft Design样式应用程序进行本地调试。

可以使用Microsoft Design样式模拟器调试Microsoft Design样式应用程序。可以使用Microsoft Design样式模拟器运行Microsoft Design样式应用程序,并可模拟同一台计算机上常见的触摸和旋转事件。

在远程计算机上运行Microsoft Design样式应用程序。Visual Studio 2012远程调试器允许你运行、调试和测试一个运行在某个远程设备上的Microsoft Design样式应用程序,即远程运行。

使用JavaScript调试工具,包括 DOM 资源管理器和 JavaScript 控制台窗口,用交互式方式调试Microsoft Design样式应用程序。

在你的函数和算法中找出性能瓶颈。可以使用 Visual Studio分析器来识别你的应用程序代码的哪个地方花费了最多的处理时间。

检查你的Microsoft Design样式应用程序的常见缺陷和侵犯次数。Visual Studio 2012可以帮助你检查Microsoft Design样式应用程序中不符合好的编程做法的常见缺陷以及侵犯次数。

在Windows存储(store)中,创建一个开发人员的账户或保留Microsoft Design样式应用程序的名称。在存储区菜单上使用多个命令,可以与 Windows存储交互。

创建应用程序清单,把所需的所有文件都打包在一起,以便你可以将它们上传到 Windows 存储区。

1.4.2 Visual Studio IDE
1.项目和解决方案
Visual Studio 2012 RC和 Visual Studio 2010 SP1中均使用Visual Studio 2010 SP1 的项目和文件。也就是说Visual Studio 2012对Visual Studio 2010 SP1有兼容性。

在解决方案资源管理器中浏览代码。浏览类型和成员、搜索符号、查看方法的调用层次结构、查找符号引用以及执行其他任务不用进行多个工具窗口之间的切换。

2.窗口管理
在代码编辑器中预览文件。通过预览文件而不打开文件,可以减少编辑器中的文件混乱。在我们的文档选项卡右侧的蓝色选项卡中显示预览文件。如果您对其进行修改,或者选择打开按钮该文件将会打开。

更方便地访问经常使用的文件。Visual Studio 2012把你经常访问的文件固定在选项卡的左侧,无论IDE中打开了多少文件你都可以很容易地访问到它们。

更有效地安排多显示器上的 windows。将多个浮动的工具和文档窗口作为“筏”停靠在一个显示器上。此外可以创建解决方案资源管理器的多个实例,并将其移动到另一台监视器。

更改IDE的配色方案。为Visual Studio用户界面提供深或浅的颜色主题。

3.搜索
通过IDE搜索。
指定单词或短语,然后从列表中选择一个入口,打开一个与条目或命令相关的对话框或窗口。

工具窗口中的搜索。
通过在某些特定工具窗口顶部的搜索框中输入关键字来过滤视图,如工具箱、解决方案资源管理器、错误列表和团队资源管理器等。

使用.NET 框架中的正则表达式语法查找字符串。
在查找和替换控件和在文件中查找和在文件中替换的对话框中使用.NET 框架中的正则表达式语法。

4.编辑C++代码
指定多个语义着色。
C++大多的关键字有默认着色,在Visual Studio 2012中可以指定多个着色。

使用改进的参考突出显示。
通过指向符号的一个实例,突出显示符号的所有实例。你可以通过选择 Ctrl + Shift + 向上键或 Ctrl + Shift + 向下箭头在突出显示引用中移动。当然你可以选择关闭或打开此功能。

选择输入的成员函数。
当你在代码编辑器中输入文本时,成员列表会自动出现,而且结果是经过筛选的,出现的都是相关的条目。

充分利用C + + /CLI智能感应技术。
现在C + + /CLI支持智能感应功能,如快速信息、参数帮助、列出成员和自动完成功能。

通过使用代码片段加快代码编写速度。
你可以从成员列表中选择代码段,然后填写所需的逻辑。有关于switch, if-else,for以及其他基本代码构造的代码段,你还可以自定义代码段。

5.编辑JavaScript代码
使用ECMAScript 5 和 DOM HTLM5的功能。

为重载函数和变量提供智能感应技术。

通过使用三斜杠(///)注释中支持的新元素来提供智能感应信息,新元素包括和。

在语句完成列表中查看特征码。
函数签名出现在语句完成列表的右侧。

编写代码时使用智能缩进、大括号匹配及大纲显示。

在源代码中使用GO TO定义找到函数定义。

右击一个函数,然后选择GO TO Definition选项(或者将光标定位在此函数上,按F12键),将在函数定义的文件位置上打开JavaScript源文件(已生成的文件不支持此功能)。

获取标准 JavaScript 注释的智能感应信息。
从JavaScript标准注释中获取的IntelliSense信息使用标准的注释标记(/ /)时,新的IntelliSense扩展性机制自动提供IntelliSense。

扩展JavaScript IntelliSense来改善对其他系统的库的支持性能。
使用扩展性API提供自定义的IntelliSense体验。

在一行代码中设置断点。
当一行中包含多个语句时,您可以在单个语句中中断。

控制哪些对象是在全局作用域中可用。

查看标识符的语句完成,即使有关该对象的准确信息不可用。

在动态加载的脚本中获取对象的IntelliSense信息。

1.4.3 语言
1.Visual Basic
以一种简单直观的方法编写异步代码。
通过使用异步功能,而无需定义继续或拆分跨多个方法或入(lambda )表达式的代码就可以调用异步方法。

获取帮助跟踪和调试的调用方信息。
你可以获得源代码文件的路径、源代码行号和方法的调用者的成员名称。

对于复杂的列表顺序维护For Each 循环的简单性。
你可以使用迭代器每次返回一个集合中的一个项目。

更好地理解代码的流动方式。
通过使用调用层次结构功能,可以显示与选定的方法、属性或构造函数相关的所有调用。

在项目的根命名空间以外定义一个命名空间。
2.Visual C
以一种简单直观的方法编写异步代码。
通过使用异步功能,而无需定义继续或拆分跨多个方法或入(lambda )表达式的代码可以调用异步方法。

获取帮助跟踪和调试的调用方信息。
你可以获得源代码文件的路径、源代码行号和某个方法的调用者的成员名称。

3.Visual C++
编写符合C++11语言标准的代码。
你可以使用Visual C++编写使用了无状态lambda、CARY迭代器、基于范围的循环、指定了作用域的枚举和其他具有C + + 11语言标准中强大的新功能的代码。

使用C++创建Microsoft Design样式应用程序和游戏。
使用Visual C++与XAML开发模型,使用Visual C++组件的扩展(C + + / CX) 和其他新功能来创建Microsoft Design样式应用程序和游戏。

使用改进的编译器编写更快、更高效的代码。
编译器改进后,你可以编写在CPU上编译运行得更快的或在多个处理器上执行的代码,或者编写定位于相同的系统配置目标的复用代码。

多处理可以使应用程序快速高效运行。
通过使用改进的并行库和新的调试和可视化功能,使应用程序在不同的硬件上运行得更好。

代码更可靠。
使用更新后的单元测试框架,体系结构依赖关系图、体系结构资源管理器、代码覆盖率工具和其他工具使代码更可靠。

4.JavaScript
在代码中插入运行时间约束和错误检查。

可以使用类型化的数组处理二进制数据源(如网络协议、二进制文件格式和图形缓冲区)。如果已知字节布局,类型化的数组也可以用于管理内存中的二进制数据。

在Microsoft Design样式应用程序中使用 Windows 运行库。

添加与主页上并行运行的后台工作人员。

5.Visual F
直接对丰富的数据和服务(如数据库、Web服务、Web数据源和数据经纪人的共享空间)进行编程。使用F#类型提供程序,你可以专注于数据和程序逻辑而不是创建一系列数据类型。

在F#语言中直接查询数据库。

使用F# LINQ查询指定F#语言所需的数据,而无需写数据库查询或存储过程。

1.4.4 应用程序生命周期管理和 Team Foundation Server
1.应用程序生命周期管理
通- 过使用灵活的工具管理待办事项、sprints和任务。

定义多个团队,其中每个团队可以管理他们的工作和计划sprints的代办事项。 设置工作的优先级,以及与大纲的依赖性和关系。实时查看哪项任务过载。 更新任务并且查看sprint中的进程。

使风险承担者提供预发行软件的反馈信息。
利益相关者可以记录操作脚本、注释、屏幕截图和视频或音频录制。

使用故事板说明需求,并将故事板链接到具体的工作项。
生成序列图像板预定义的序列图像板形状集合,捕获用户界面,并把任何序列图像板和网络上的共享文件链接到工作项中。

通过使用 Microsoft 项目和项目服务器来管理企业项目。
灵活正式的软件团队管理项目产品组合,并查看状态和资源的可用性。

2.建模应用程序
更快地实现你的代码。

创建、读取和编辑可伸缩性更强的依赖项关系图。

可以打开工作项中的链接模型元素。

根据UML类关系图生成C#代码。

这样可以更快地实现你的设计,定制用来生成代码的模板。

根据现有代码创建UML类关系图。
根据代码创建UML类关系图,可以使你方便地与他人就设计的问题进行讨论。

导入XMI 2.1文件。
导入UML类,使用案例,并从其他工具将序列图和模型元素导出为XMI 2.1 文件。

3.开发应用程序(作为一个团队,可以更有效地合作)
跟踪任务,而且通过使用增强的界面提高开发效率。组织即将发生、正在进行以及挂起的工作,同时提高透明度,减少中断造成的影响。

使版本控制的基本代码更高效地工作。这样可以很好地组织您的工作,减少中断造成的影响,并合理地管理搁置集和变更集。

使用新的工具来跟踪和审查代码。

使用专用的工具执行单元测试。代码测试将称为你工作流的一部分。

查找重复的代码方便重构。

使用增强的比较工具比较代码版本。

脱机工作。即使你未连接到Team Foundation Server,也可以在本地的Visual Studio的工作区内进行工作。
4.自动执行和调试
使用增强的界面运行、监视和管理生成。

运行从Team Foundation Service自动构建的生成。

利用一个后端或主机托管的生成控制器。

定义支持多个签入的门控的签入生成过程。

在生成过程中运行本机和第三方的单元测试框架。

更轻松地调试生成形成的过程。在生成结果窗口中选择一个链接即可查看诊断日志。

5.Microsoft测试管理器
手动测试Microsoft Design样式应用程序。
Microsoft测试管理器可用于运行手动测试,以帮助你确定正运行在远程设备(如绘图板)上的Microsoft Design样式应用程序存在的问题。

执行探索性测试。
在探索性测试窗口中,可以运行测试,而无需限定在测试脚本或一组预先确定的步骤。

在手动测试的步骤可以包括多行和富文本。
测试步骤可以包含多行整合您的测试用例中的单个测试步骤中相关的操作。 Microsoft 测试管理器现在也有一个工具栏,可以使用这个工具栏设置测试步骤的文本格式。你可以使用不同的格式设置选项,如粗体、下划线或颜色突出显示,以强调要点。

在Microsoft测试管理器中获得测试计划的状态。
状态报告是Microsoft测试管理器可用的计划中心组菜单栏中的选项卡。 在这里,可以查看结果,其中包括测试计划的状态报告。

为新的迭代克隆测试计划。
通过克隆测试,你可以更轻松地在不同版本并行工作。例如,你已经有一个称为“Contoso V1 –Milestone 1”的测试计划,并且你的团队决定使用版本V2,你可以克隆测试计划并将其用于V2的源代码分支。克隆测试计划之后,你和你的团队可以同时工作在两个版本的应用程序。

1.4.5 ASP.NET 4.5和Web开发
1.ASP.NET 4.5核心服务
改善 JavaScript。
可以将单独的JavaScript文件组合在一起,并通过捆绑和减小其大小来提高加载速度。

可以使用以早期版本的.NET为框架的项目。
ASP.NET 4.5 有多目标的特性,所以以早期版本的.NET为框架的项目还是可以使用的。

避免跨站点脚本攻击。
防止跨站点脚本攻击的API已集成到ASP.NET框架的核心。

更方便地编写异步Web应用程序。
你可以异步地读取和写入HTTP请求和响应,并异步使用HTTP模块和处理方式。

2.ASP.NET 4.5 Web窗体
编写由数据绑定控件直接调用的代码。
在ASP.NET Web窗体中,可以像在ASP.NET MVC中一样使用数据绑定模型。

在Web窗体数据控件中写入强类型表达式和双向数据绑定表达式。
通过使用强类型的表达式代替Bind或Eval表达式,可以访问数据控件中的复杂属性。

通过简洁的JavaScript提高网页表现力。
通过将客户端验证代码移动到外部JavaScript文件中,可以使网页变得更小并且加载更快。

3.Web开发改进
使用最新的Web标准。
新的HTML编辑器完全支持HTML5标准。 CSS 编辑器完全支持CSS3,其中包括对CSS hack的支持。

在不同的浏览器中测试相同的页面、 应用程序或站点。
已安装的浏览器列表会显示在Visual Sudtio中的“Debugging”按钮旁边。

快速查找有标记的源。
新的页面检查器可以直接在 Visual Studio IDE中查看页面(包括HTML,ASP.NET MVC)。当你选择查看的元素时,页面检查器会打开该文件的标记生成,并突出显示源。

通过使用改进的IntelliSense快速查找代码段和代码元素。
输入文本时,HTML中的IntelliSense和CSS编辑器过滤显示列表,将显示匹配其开头、中间或结尾中输入的字符串。它还针对首字母匹配。例如,“bc”匹配“background-color”。

选中标记并将其解压到用户控件。
此功能可以很方便地在多个位置中创建重复使用的标记。 Visual Studio 注册标记前缀,并为你实例化该控件,所选的代码本身被替换为用户控件的新实例。

更容易创建和编辑代码和标记。
当你重命名一个开始标记或结束标记时,相应的标记会自动被重命名。当你选择一个空标签对内部按 Enter 键时,光标将出现在新一行的缩进位置。

更高效地创建CSS。
在新的CSS编辑器中,可以展开和折叠节、使用分层缩进和注释或自由地取消注释块。 在CSS编辑器中有了颜色选择器,这点与HTML编辑器中的颜色选择器类似。

JavaScript 编辑器有所增强。

更轻松地部署Web应用程序。

可以从服务器提供商导入发布设置、指定发布的配置文件Web.config的文件转换、将加密的凭据存储在发布的配置文件中、指定生成配置中的发布配置文件和预览部署更新。

4.数据相关的Web开发改进
自动验证频繁使用的数据类型。
可以将新的DataAnnotation 属性添加到属性集,以自动验证频繁使用的数据类型,如电子邮件地址、电话号码和信用卡号码。

部署数据库增量更新。
在部署Web项目中的数据库后,数据库架构的更改被自动传播到你下一次部署的目标数据库。

5.用于Web开发的IIS Express
开发针对相同的IIS服务器的Web应用程序。

在Visual Studio 2012 RC中,IIS Express是Web开发的默认服务器。IIS Express是轻量、独立版本的IIS,它包含IIS Web服务器的所有核心功能。

6.ASP.NET Web API
轻松构建和使用到达广泛客户端的HTTP服务。
HTTP服务可以通过浏览器、移动应用程序、平板电脑和其他设备使用。通过协商对内置内容的支持,使客户端和服务器双方确定合适的数据格式。

通过最新的HTTP编程模型,直接处理HTTP请求和响应。
服务器和客户端都支持使用简洁、强类型的HTTP对象模型编程。新的 HttpClient API可以调用任何.NET应用程序中的Web API。

方便地从HTTP请求中提取数据。
ModelBinder机制使得从各个部分的HTTP请求中提取数据变得非常容易。其中消息部分实例化为Web API可以使用的.NET对象。ASP.NET Web API支持基础相同模型绑定和验证,与ASP.NET MVC类似。

享受一套完整的路由功能。
ASP.NET Web API在ASP .NET MVC和ASP.NET中支持完整的路由功能,其中包括路由参数和约束。

1.4.6 其他改进
1.LightSwitch
连接开放数据协议(OData)数据源。
LightSwitch应用程序可以连接到任何开放数据协议数据源,包括Windows Azure DataMarket中的数据源。

将自己的应用程序数据公开为OData的数据源。
可以将已发布LightSwitch Web应用程序的数据发布,以便其他应用程序使用。

给安全组分配角色和许可。
如果使用Windows身份验证,那么你可以给Active Directory中的任何安全组分配角色和许可。

限制服务器返回的数据。
可以对访问数据的行为定义过滤器。

改善界面上新控件的外观。
可以使用组件盒控件来组织你的屏幕内容。还可以不绑定数据就在屏幕上显示文本和数据。

自定义数字和日期格式。

将URLs和百分比视为数据类型。

利用内置格式和验证,你可以在自定义的业务类型中将小数视为百分数,将字符串作为URL。

2.数据应用程序开发
使用SQL Server对象管理器管理数据库对象。
利用集成了Management Studio的SQL Server对象管理器可以新建查询,定义数据库对象 。

利用全新的表设计器来设计表。
使用表设计器定义 SQL Server 2012格式的表。 利用可视化定义表时,Transact-SQL 代码也会在脚本窗口中同步更新。

在SQL Server Express LocalDB中开发和测试数据库应用程序。
SQL Server Express LocalDB 是SQL Server 数据库轻量版本,具有SQL Server数据库的所有编程功能。SQL Server Express LocalDB 替换SQL Server Express,成为开发默认的数据库引擎。如果你必须使用Visual Studio 2010和Visual Studio 2012 RC两个版本的Visual Studio,那么你可以升级文件,或继续使用SQL Server Express。

3.图形工具
更轻松地添加、编辑和编译HLSL着色器。
当你在编码HLSL着色器时,可以使用语法着色、缩进段落和分级显示,并且MSBuild自动支持 Microsoft HLSL 编译器。

更高效地查看和修改图片。
你可以在图像编辑器中创建、检查和修改位图和压缩格式的图片(DDS、TGA、TIFF、PNG、JPG、GIF),并且编辑器支持透明度和Mipmap。

可以使用三维模型。
模型编辑器可以识别标准三维模型格式(OBJ、COLLADA 和 Autodesk FBX)。你还可以使用内置的三维基元和资料为三维游戏和应用程序创建占位符,从而提高艺术家开发人员的工作流。

创建高级的像素着色器。
着色器设计器是一种基于图表的着色器创建工具,它提供实时预览效果。利用它可以创建高级的像素着色器,并可以将像素着色器导出为HLSL代码,这些HLSL代码可以在基于DirectX的应用程序中使用。

4.并行计算
使用C++ AMP使代码运行更快。
通过使用C++ Accelerated Massive Parallelism(C++ AMP),你可以控制数据在CPU 和GPU或其他数据并行硬件之间移动,从而加快C++代码的执行。

更有效地调试并行应用程序。
使用GPU线程和并行监视窗口不仅可以调试并行应用程序,还可以使用它们评估并微调性能。

通过自定义数据来检查并行程序的性能。
通过使用并发可视化工具,你可以检查多线程应用程序的运行性能。在此版本中,你可以更快地访问和增强配置的控制,并可以将自定义的性能数据添加到可视化工具。

使用TPL(Task Parallel Library)数据流使可以并发运行的程序更可靠。
当你的代码涉及多个必须进行异步通信的操作,或当你想要处理可用的数据时,可以使用TPL数据流库组件。

5.SharePoint开发
使用设计器创建列表和内容类型。
利用设计器,你可以更容易地创建列表和内容类型,并对其内容进行设置和布局。

创建SharePoint 站点的站点列。
通过使用项目模板可以更方便地创建SharePoint站点列(也称为“域”)。

可将Silverlight Web部分添加到SharePoint项目。
使用项目模板,你可以更容易和方便地创建Silverlight的Web部分。

提供发布到远程SharePoint站点的SharePoint解决方案。
SharePoint解决方案除了可以发布到本地的SharePoint网站外,还可以将其发布到远程SharePoint网站。

使用分析工具改善SharePoint性能。
使用Visual Studio中的工具,你可以有效地分析出成为你的SharePoint项目中瓶颈的代码和其他元素。

更轻松地创建沙盒解决方案。
在Visual Studio中使用沙盒解决方案时,只有兼容的API出现在智能感应,如果你尝试使用仅用于服务器场的API调用,编译器将发生错误。

更轻松地调试JavaScript。

使用简化的项目模板更轻松地开发SharePoint项目。

为了优化SharePoint开发,以前版本的Visual Studio的某些SharePoint项目模板已移动到Visual Sudio 2012项目模板中。

使用Microsoft Fakes框架来测试代码。
SharePoint项目支持Microsoft Fakes,这是一种隔离框架,你可以利用它创建基于委托的测试桩和在.NET框架应用程序中的填充,并且通过隔离你的单元测试环境测试代码。

6..NET Framework 4.5
构建基于多个.NET框架平台的可控集。
通过使用Visual Studio 2012 RC中的可移植类库项目,你的应用程序可以面向多个平台(如Windows Phone和.NET for Microsoft Design)。

安装.NET框架时减少重新启动系统的次数。

通过使用异步操作来提高文件输入/输出性能。

在处理大型文件时,可以在输入/输出类中使用C#和Visual Basic新的异步特性中的异步方法。

在拥有多核处理器的机器上改进启动性能。

更容易地开发和维护WCF应用程序。

改进WCF应用程序的可扩展性。

更轻松地管理工作流。

可以创建状态机工作流。

在WPF应用程序中更快地显示分组数据的大型集。

通过使用新的编程接口来更高效地创建最新的HTTP应用程序。

相关文章
|
1月前
|
开发框架 前端开发 JavaScript
前端框架演进史:从HTML到现代化开发
前端框架演进史:从HTML到现代化开发
33 0
|
前端开发 JavaScript 算法
JavaScript 权威指南第七版(GPT 重译)(七)(3)
JavaScript 权威指南第七版(GPT 重译)(七)
|
前端开发 JavaScript 算法
JavaScript 权威指南第七版(GPT 重译)(七)(1)
JavaScript 权威指南第七版(GPT 重译)(七)
|
2天前
|
存储 前端开发 JavaScript
JavaScript 权威指南第七版(GPT 重译)(六)(4)
JavaScript 权威指南第七版(GPT 重译)(六)
JavaScript 权威指南第七版(GPT 重译)(六)(4)
|
2天前
|
前端开发 JavaScript API
JavaScript 权威指南第七版(GPT 重译)(六)(3)
JavaScript 权威指南第七版(GPT 重译)(六)
|
2天前
|
JSON 前端开发 JavaScript
JavaScript 权威指南第七版(GPT 重译)(五)(2)
JavaScript 权威指南第七版(GPT 重译)(五)
|
2天前
|
JSON JavaScript 前端开发
JavaScript 权威指南第七版(GPT 重译)(四)(4)
JavaScript 权威指南第七版(GPT 重译)(四)
|
2天前
|
Web App开发 前端开发 JavaScript
JavaScript 权威指南第七版(GPT 重译)(四)(1)
JavaScript 权威指南第七版(GPT 重译)(四)
|
2天前
|
存储 JavaScript 前端开发
JavaScript 权威指南第七版(GPT 重译)(三)(3)
JavaScript 权威指南第七版(GPT 重译)(三)
|
2天前
|
存储 JavaScript 前端开发
JavaScript 权威指南第七版(GPT 重译)(三)(2)
JavaScript 权威指南第七版(GPT 重译)(三)