请用通俗易懂的语言帮我讲解一下js的构造函数的概念?

JavaScript016

请用通俗易懂的语言帮我讲解一下js的构造函数的概念?,第1张

在JavaScript的世界里没有类的概念,JavaScript是一种基于对象的语言,它包含5中原生数据类型:

number

boolean

string

null

undefined

除此之外,其他所有的都是对象,函数也是一个对象

// 这是一个函数声明,函数是一个特殊的对象

function method() {

}

构造函数,就是一个普通的函数,与其他函数没有任何区别,可以理解为 函数==构造函数,它只是概念上的一个定义,使用它用来实例化对象。

对于JavaScript的内置对象,Object、Array、Date等等这些都是构造函数。

function Obj() {

}

var o = new Obj() // 实例化

使用new运算符返回的对象并不一定是实例本身,也可以在构造函数用使用return改变返回值

function Obj() {

  this.a = 1

  return { a: 2 }

}

var o = new Obj() // o并不是Obj的实例

console.log(o.a) // 输出2

前面说到了函数也是一个对象,在JavaScript的内置对象中,所有的函数对象都是Function构造函数的实例,比如:Object、Array等等,这是一个很有意思的事情。

使用 instanceof 这个运算符就可以校验

instanceof运算符返回一个指定的对象是否一个类的实例,格式如:A instanceof B。其中,左操作数必须是一个对象,右操作数必须是一个类(构造函数)。

判断过程:如果函数B在对象A的原型链中被发现,那么instanceof操作符将返回true,否则返回false。

alert(Function instanceof Function) // Function函数对象 本身就是自己的一个实例

alert(Object instanceof Function) // Object函数对象 是 Function构造函数的一个实例

上面说道 instanceof 的现象是一件很有意思的事情,如果想了解更多,需要阅读 JavaScript原型链继承 相关的文章加深理解。

JS代码就是JavaScript编写的脚本文件的代码。用单独文件保存,扩展名为.JS

JS即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

CSS:层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。

CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。

扩展:css与js对比图

标签和属性对照 CSS语法(不区分大小写) JavaS cript语法(区分大小写)

盒子标签和属性对照颜色和背景标签和属性对照样式标签和属性对照文字样式标签和属性对照文本标签和属性对照