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

 我来答
maxzhang123
2014-01-13 · TA获得超过1424个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:217万
展开全部

在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原型链继承 相关的文章加深理解。

______霸道女王
2014-01-11
知道答主
回答量:28
采纳率:0%
帮助的人:16.6万
展开全部
就是在创建这个对象或者类的实例时,自动调用的函数,一般的语言都是new创建,那么new的参数就传递给构造函数。
追问
那$a=new Object();那么这个Object就是构造函数吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式