十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

构造函数与其他函数的区别

百恒网络 2013-03-08 1426

构造函数与其他函数的唯一区别,就在于调用它们的方式不同。不过,构造函数毕竟也是函数, 不存在定义构造函数的特殊语法。任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,如果不通过new操作符来调用,那它跟普通函数也不会有什么两样。南昌网络公司技术员举例说明:例如,前面例子中定义的Person()函数可以通过下列任何一种方式来调用:

//当作构造函数使用

var person=new Person("Nicholas",29,"Software Engineer");

person.sayName(); //“Nicholas"

//作为普通函数调用

Person("Greg",27,"Doctor"); //添加到window

window.sayName(); //"Greg"

//在另一个对象的作用域中调用

var o=new Object();

Person.call(o,"Kristen",25,"Nurse");

o.sayName(); //"Kristen"

这个例子中的前两行代码展示了构造函数的典型用法,即使用new操作符来创建一个新对象。接下来的两行代码展示了不使用new操作符调用Person()会出现什么结果:属性和方法都被添加给wind。w对象了。有读者可能还记得,当在全局作用域中调用一个函数时,this对象总是指向Global对象(在浏览器中就是window对象)。因此,在调用完函数之后,可以通过window对象来调用sayName()方法,并且还返回了"Greg"。最后,也可以使用call()(或者apply())在某个特殊对象的作用域中调用Person()函数。这里是在对象O的作用域中调用的,因此调用后O就拥有了所有属性和sayName()方法

本文仅限于南昌网站设计公司百恒网络内容技术人员查看,请勿作其他商业用途. 文章出自:南昌网络公司-百恒网络 http://www.jxbh.cn 如转载请注明出处!


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×