面向对象程序设计(简称OOP)是现在最流行的程序设计方法
JavaScript所有对象的数据类型是object。
使用构造函数创建JavaScript对象
可以使用构造函数的方式创建对象
使用构造函数定义法
语法
var object=new objectname();
var -- 声明对象变量
object -- 对象的名称
new -- new的关键词(JavaScript关键词)
objectname -- 构造函数名称
示例
//定义构造函数
function Site(url, name)
{
this.url = "www.dreamdu.com";
this.name ="梦之都";
}
//使用构造函数产生一个JavaScript对象的实例
var mysite = new Site();
alert(mysite.url);
构造函数通常可以初始化对象中的一些内容,JavaScript内部提供的一些对象通常需要使用构造函数的方法生成。
直接定义法创建JavaScript对象
//定义对象语法
var object={};
//对象内的属性语法(属性名(property)与属性值(value)是成对出现的)
object.property=value;
//对象内的函数语法(函数名(func)与函数内容是成对出现的)
object.func=function(){...;};
var -- 声明对象变量
object -- 对象的名称
property -- 对象的属性名
func -- 对象的方法名
说明:对象可以包含一些属性(函数可以看作带有括号的特殊属性),每个属性有名称和值。名称可以是任何字符串甚至是空。值可以是任何javascript类型,但不能是undefined。
使用定义法定义的对象示例
var site = {};
site.URL = "www.dreamdu.com";
site.name = "梦之都";
site.englishname = "dreamdu";
site.author = "可爱的猴子";
site.summary = "免费的网页设计教程";
site.pagescount = 100;
site.isOK = true;
site.startdate = new Date(2005, 12);
site.say = function(){alert(this.englishname+" say : hello world!")};
site.age = function(){var theage=(new Date().getFullYear())-site.startdate.getFullYear();alert(this.name+"已经"+theage+"岁了!")}
使用构造函数创建JavaScript对象示例 -- 可以尝试编辑
使用构造函数创建JavaScript对象
上面的方法定义了一个site的对象,并且为其定义了七个属性,与两个个方法。
say方法会打印出dreamdu say : hello world!的字符串
age方法会计算出梦之都网站的年龄
猴子提示: 注意每个属性与函数前面都要加上对象的名称,否则JavaScript无法判断它是属于那个对象的。
创建 JavaScript 对象
JavaScript 中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等等。
你也可以创建自己的对象。
本例创建名为 "person" 的对象,并为其添加了四个属性:
实例
person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue";
创建新 JavaScript 对象有很多不同的方法,并且您还可以向已存在的对象添加属性和方法。
您将在本教程稍后的章节学到更多相关的内容。
访问对象的属性
访问对象属性的语法是:
objectName.propertyName
本例使用 String 对象的 length 属性来查找字符串的长度:
var message="Hello World!"; var x=message.length;
在以上代码执行后,x 的值是:
12
访问对象的方法
您可以通过下面的语法调用方法:
objectName.methodName()
这个例子使用 String 对象的 toUpperCase() 方法来把文本转换为大写:
var message="Hello world!"; var x=message.toUpperCase();
在以上代码执行后,x 的值是:
HELLO WORLD!
您知道吗?
提示:在面向对象的语言中,使用 camel-case 标记法的函数是很常见的。您会经常看到 someMethod() 这样的函数名,而不是 some_method()。