什么是伪类?作为JavaScript程序员的你知道吗?

栏目: IT资讯 · 发布时间: 7年前

内容简介:什么是伪类?作为JavaScript程序员的你知道吗?

什么是伪类?

伪类对元素进行分类是基于特征(characteristics)而不是它们的名字、属性或者内容;原则上特征是不可以从文档树上推断得到的。

伪类有::first-child ,:link:,vistited,:hover:,:active,:focus,:lang,:right,:left,:first何为伪类?就是css内植类css内部本身赋予它一些特性和功能,也就是你不用再class=...或id=...你就可以直接拿来使用,当然你也可以改变它的部分属性比如:a:link{color:#FF0000;}CSS很多的建议并没有得到浏览器的支持,但有四个可以安全用在超链接上的伪类。

伪类有什么作用?

CSS很多的建议并没有得到浏览器的支持,但有四个可以安全使用的用在连接上的CSS伪类。

◆link用在为访问的连接上。

◆visited用在已经访问过的连接上。

◆hover用于鼠标光标置于其上的连接。

◆active用于获得焦点(比如,被点击)的连接上。

例如:

ExampleSourceCode

a:link{color:red}a:visited{color:green}a:hover{color:blue}a:active{color:orange}

更多的理解?

JavaScript的原型中存在诸多矛盾。某些看起来有点像基于类的语言的复杂语法问题遮蔽了它的原型机制。它不让对象直接从其他对象继承,反而插入了一个多余的间接层,从而使构造函数产生对象。

当一个函数对相被创建时,Function构造器产生的函数对象会运行类似遮掩的一些代码:

this.prototype ={constructor:this};

新函数对象被赋予一个prototype苏花型,其值是包含一个constructor属性且属性值为新函数对象。该Prototype对象是存放继承特征的地方。因为JavaScript语言没有提供一种方法去确定哪个函数是打算用来作结构的,所以每个函数都会得到一个Prototype对象。

constructor属性没什么用。重要的是Prototype对象。当采用构造器调用模式,即使用new前缀去调用一个函数时,这将修改函数执行的方式。如果new运算符是一个方法而不是一个运算符,它可能会像这样执行:

什么是伪类?作为JavaScript程序员的你知道吗?

我们也可以定义一个构造器扩充它的原型:

什么是伪类?作为JavaScript程序员的你知道吗?

现在我们可以构造一个实例:

我们可以构造另外一个伪类来继承Mammal,这是通过定义它的constructor函数并替换它的prototype为一个Mammal的实例来实现的:

什么是伪类?作为JavaScript程序员的你知道吗?

伪类模式本意是想面向对象靠拢,但它看起来格格不入。我们可以隐藏一些不好的细节,这是通过使用method方法定义一个inherits方法来实现的:

我们的inherits和method方法都返回this,这将允许我们可以以级联的样式编程。可以只用一行语句构造我们的Cat:

什么是伪类?作为JavaScript程序员的你知道吗?

本人自创的一个小群:621071874,如有交流讨论都可以进来畅谈JS

本人创建的一个交流学习群:621071874,欢迎大牛,小白进群讨论学习。

“伪类”形式可以给不熟悉JavaScript的 程序员 提供便利,但是也隐藏了该语言的真实本质,借鉴类的表示法可能误导程序员去编写国语深入与复杂的层次结构。许多复杂的类层次结构产生的原因就是静态类型检查的约束。JavaScript完全拜托了那些约束。在基于类的语言中,类的继承是代码重要的唯一方式。JavaScript悠着更多更好的选择。

最后,不知道各位程序员对伪类有什么看法,请多多指教。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Orange'S:一个操作系统的实现

Orange'S:一个操作系统的实现

于渊 / 电子工业出版社 / 2009-6 / 69.00元

《Orange S:一个操作系统的实现》从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不......一起来看看 《Orange'S:一个操作系统的实现》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试