javascript - function函数与实例化的function是什么关系?他们不都是对象吗?

查看:97
本文介绍了javascript - function函数与实例化的function是什么关系?他们不都是对象吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function tom()
{
this.age = "15";
}

var tom = new Object;
tom.age = "15";

function是对象,new object也是,上述两个代码是不是等价的?

另外,
他们与下面这段代码中的x的关系是什么? 谢谢

function tom()
{
this.age = "15";
}
var x = new Object();

解决方案

首先,你定义的function tom(){this.age = "15";}(建议写成function Tom(){this.age = "15";})是一个构造器,可以看成是自定义的一个类,及Tom这个类。由Tom()创建出的对象中存在一个属性constructor指向这个构造器。
而后创建的tom对象var tom = new Object();其是由Object这个类创建的,所以两种创建方式创建出来的新对象类型是不一样的,而且由Object创建出的对象扩展性没有自定义构造器创建的对象好。
具体的你可以参考《javascript高级程序设计》有关继承和构造器相关的章节;
最后,var tom = new Object;这样写是错的,应该这样写才是调用var tom = new Object();这里的tom和你最后定义的x是一回事只不过储存的变量不同而且等同于var x = {}

这篇关于javascript - function函数与实例化的function是什么关系?他们不都是对象吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆