终于到了使用元类了,可是一般来说,我们根本就用不上它,就像Python 界的领袖 Tim Peters 说的: 元类就是深度的魔法,99% 的用户应该根本不必为此操心。如果你想搞清楚究竟是否需要用到元类,那么你就不需要它。那些实际用到元类的人都非常清楚地知道他们需要做什么,而且根本不需要解释为什么要用元类。 元类的主要用途是创建 API。一个典型的例子是 Django ORM。它允许你像这样定义:
内建的 <template> 元素用来存储 HTML 模板。浏览器将忽略它的内容,仅检查语法的有效性,但是我们可以在 JavaScript 中访问和使用它来创建其他元素。 从理论上讲,我们可以在 HTML 中的任何位置创建不可见元素来储存 HTML 模板。那 <template> 元素有什么优势? 首先,其内容可以是任何有效的HTML,即使它通常需要特定的封闭标签。 例如,我们可以在其中放置一行表
简介 享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字形有其字型
对于进行单元测试,electron-vue 使用 Karma 作为测试的运行器,使用 Mocha (与 Chai\ 作为测试框架。 Mocha 和 Chai 分别使用 karma-mocha 和 karma-chai 进行集成,所以所有的 API(例如 expect)都可以在测试文件中全局使用。 运行测试 # 开始 Karmanpm run unit 文件结构 my-project├─ test|
form元素用来创建表单,它包含多个属性,分别是action属性、method属性、enctype属性、onSubmit属性、onReset属性,接下来对这些属性进行简要介绍: action属性 action 属性用来规定访问者提交表单后,服务器端处理脚本的URL。它可以是绝对URL,也可以相对URL。这个URL一般指向服务器端的一个程序,这个程序可以是任何动态网页或 servlet 或CGI,由
使用 map元素,可以定义一个图像映射。图像映射是指把一幅图像划分为多个区域(即热点区域),每个热点区域对应一个超级链接,当用户点击热点区域,会自动跳转到预先设定好的链接地址。 创建一个图像映射,需要 img、map、area 三种标签配合完成: 首先,使用 img 元素定义一幅图像,并通过 src 属性定义图像的URL,通过 usemap 属性定义要选择的图像映射名称,以建立图像与图像映射之间的
链接是万维网的命脉,如果没有链接,每个页面都只能孤立地存在,同其他页面完全分开。通过链接,可以建立同其他网页或网站之间的连接,可以不夸张的讲,没有链接,就没有万维网。 在网页中,通过链接来指向一个目标,这个目标可以是网页、网页中的具体位置、图像、邮件地址、文件、FTP地址等,甚至是一个应用程序。 链接可以是一个字、一个词、一组词、一幅图像,点击这些内容会跳转到新的文档或当前文档的某个具体位置。一般
span元素也是一个没有语义的元素,类似于 div 元素。不过,span 是行内元素,它只能包围字词或短语,而 div 元素适合包含块级内容。 如果想为一小块内容定义 class、id、dir、lang 等属性,或定义特殊的显示风格,或定义Javascript行为,而又没有相应的HTML语义元素时,就可以使用 span元素。 如,以下段落中,通过三个 span元素,定义了三小块内容,并为它们分别应
wbr元素表示一个可以换行的机会,即表示必要时可以在此处换行,至于是否换行,则由浏览器根据窗口或父元素的宽度情况自主决定。当宽度足够时,即没必要换号时,不进行换行,当宽度不够时,主动在此处换行。如: <p>To learn AJAX, you must be familiar with the XMLHttp<wbr>Request.</p> 正常情况下,当宽度不足时,会在行末将整个单词放到下一
默认情况下,浏览器会根据包含内容的块或窗口的宽度,让文本内容自动换行。但有时候,可能希望手动强制内容换行。这时,就可以使用 br元素。br元素是一个单标签元素,需要使用“/”来正确地关闭,格式为 <br />。 对于一个段落,如果没有 br元素,整个段落都会在同一行显示,而每个 br元素都会强制接下来的内容在新的一行显示。如: <p>剑<br />一把剑<br />一把锋利的剑</p> 使用 b
kbd元素用于指示用户输入的文本,经常用于计算机相关的文档和手册中,用来表示的是键盘输入的文本,如Ctrl,但也可以用来定义其他输入,如声音命令。 如果在 kbd元素中直接包含文本,就表示键盘输入,即指示键盘按键。如,以下段落中的Shift、F3 就表示键盘按键: <p>To make George eat an apple, press <kbd>Shift</kbd> + <kbd>F3</
samp元素用于指示程序或系统的示例输出,各种程序的示例输出,都可以把它放在 <samp></samp> 标签中。 如果要同时表示输入和输出,可以将 kbd元素嵌在 samp元素中,kbd 就表示系统回显的输入,samp 就表示系统的输出。 将 kbd元素嵌在 samp元素中的好处是,可以方便为输入和输出定义不同的显示风格。当然,为了更精确的控制显示风格,可以配合使用 span 等元素。 如,在以
var元素用来定义计算机程序的源代码中的变量,它可以是数学表达式或程序上下文中一个真正变量,或一个常量,或函数参数,或仅仅是内容中的占位符。如: <p>爱因斯坦质能方程:<var>E</var> = <var>m</var> <var>c</var><sup>2</sup></p> 默认情况下,浏览器将var元素中的文本显示为斜体。运行结果如图 2‑30 所示: 图2-30 var元素 由于变量
code元素用来定义计算机程序的源代码或其他机器可以阅读的文本,如计算机程序、或函数名、XML元素名、或文件名等。 由于浏览器会将网页中所有额外的回车和空格进行压缩,并根据窗口的大小自动换行。因此,人们常常使用 pre 元素类包裹 code元素,以便 code元素中的文本能够按预先定义好的格式原样显示。 有时候,希望通过脚本对源代码进行语法高亮显示,也可以使用 class属性来指定源代码所使用的编
time元素用于定义时间、日期、时间段,它代表24小时中的某个时刻或某个日期,在表示时刻时,还允许带时差。有多种格式来呈现时间信息。如: <time datetime="2016-8-23">2016年8月23日</time> <time datetime="2016-8-23">8月23日</time> <time datetime="2016-8-23">我的生日</time> <time