很多文章说JavaScript中多有事物都是对象,对象看起来好像很熟悉,可是到底什么才是对象呢,在 JavaScript 中,对象是拥有属性和方法的数据(变量),也就是说所有的事物都可以有属性和方法。举个简单的例子,var person = "放羊娃"
,这个a就是一个对象,最开始我一直不理解,像正常定义一个对象都是var person = {name:"放羊娃"}
这种的,这样person这个对象就会有name这个属性,但是在第一个例子中,person就是一个字符串,哪里有什么属性,后来才知道,字符串的长度length就是它的一个属性,我们可以通过person.length
获得到它的长度的。在第一个例子中,我们是创建了一个字符串对象,它的完整创建过程是这样的:
var person = new String("放羊娃");
而在第二个例子中则是创建了一个自己的对象,它的完整创建过程应该是这样的:
var person = new Object();
person.name = "放羊娃";
在第一个例子中这个对象有哪些属性是系统给我们的,而在第二个例子中这个对象的属性是自己定义的。
在JavaScript中,有两种创建对象的方法(此对象非彼对象,这里的对象其实是Java中的类,而实例才是Java中的类):
1.定义并创建对象的实例
person = new Object();
或者是:
person = new Object;//如果构造函数无参数,则括号不是必须的
person.firstname = "Bill";
person.lastname = "Gates";
person.age = 56;
person.eyecolor = "blue";
person.eat = function(){
alert("eat lunch!");
};
这种写法也可以使用对象 literals代替:
person={
firstname:"John",
lastname:"Doe",
age:50,
eyecolor:"blue",
eat:function(){
alert("eat lunch!");
}
};
2.对象构造器,使用函数来定义对象,然后创建新的对象实例
function creatPerson(firstname,lastname,age,eyecolor)
{
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
this.eyecolor = eyecolor;
this.eat = function(){
alert("eat lunch!");
};
}
var newPerson = new creatPerson("Bill","Gates",56,"blue");