您的位置:首页 > Web前端 > JavaScript

JavaScript学习之自定义对象

2015-10-31 08:19 691 查看

对象

JavaScript 是面向对象的语言,但 JavaScript 不使用类。

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。

JavaScript 对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

对象只是带有属性和方法的特殊数据类型。

访问属性或方法

objectName.propertyName

objectName.methodName()

创建自定义对象

有两种方式:

直接定义

person = new Object()或者person = new Object;

//添加属性

person.propertyName = value

person={propertyName1:value1,propertyName2:value2…};

//添加方法

person.methodName = methodName;

使用构造函数

person = new Person();

扩展(prototype)

prototype 属性使您有能力向对象添加属性和方法。

object.prototype.name = value

三种自定义对象的方式比较

使用直接定义方式,比较直观快捷,可以直接添加属性和方法;但是适合创建单个对象,如果创建多个同类对象,就不合适了。

使用构造函数方式,灵活,可以使用prototype添加属性和方法,比较适合作为一个类来用,可以多次调用创建同类对象。

实例

<script type="text/javascript">
//构造函数
function Person(id,name,score){
this.id = id;
this.name = name;
this.score = score;

//添加方法
//this.toString = toString;
/*
也可以使用定义内部函数的方式
function toString(){
//JavaScript for...in 语句循环遍历对象的属性。
var string = "";
for (x in this)
{
string += this[x] + ",";
}
return string.substring(0,string.length - 1);
}*/
}
//输出函数
function toString(){
//JavaScript for...in 语句循环遍历对象的属性。
var string = "";
for (x in this)
{
string += this[x] + ",";
}
return string.substring(0,string.length - 1);
}
//1. 直接创建实例
var person = new Object;
person.id = 1;
person.name = "li ming";
person.score = 89.5;
person.toString = toString;
//2. 使用literal(文字)创建实例
var p1 = {id:1,name:"li ming",score:89.5};
p1.toString = toString;
//3. 使用构造函数创建实例
var p2 = new Person(1,"li ming",89.5);
//p2.toString = toString;
//使用prototype给对象添加属性或者方法。
Person.prototype.toString = toString;
//输出对象
document.write(person.toString()+ "<br/>");
document.write(p1.toString() + "<br/>");
document.write(p1.toString() + "<br/>");
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: