金色坐标

关注互联网应用和搜索引擎技术

« JavaScript学习笔记2Google计划在美提供高速网络服务 »

JavaScript学习笔记3

JavaScript可以说是一个基于对象的编程语言,为什么说是基于对象而不是面向对象,因为JavaScript自身只实现了封装,而没有实现继承和多态。

JavaScript中的对象是无序(unordered)的属性集合,这些属性可以含有简单的数据类型、对象、函数;保存在一个对象属性中的函数也被称为这个对象的方法。

1,对象和属性

对象具有属性,访问如下:

objectName.propertyName

2,创建对象

利用object initializer创建对象

语法如下:

objectName = {property1:value1, property2:value2,..., propertyN:valueN}

例如:

myHonda = {color:"red",wheels:4}

myHonda = {color:"red",wheels:4,engine:{cylinders:4,size:2.2}}

利用Constructor Function创建对象

例如:

function car(make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
 }

利用上述函数创建对象如下:

mycar = new car("Eagle", "Talon TSi", 1993);

3,增加属性

可以重新定义上述对象,加入属性。例如:

function car(make, model, year, owner) {
    this.make = make;
    this.model = model;
    this.year = year;
    this.owner = owner
 }

此时,实例化过程如下:

car1 = new car("Eagle", "Talon TSi", 1993, rand);

还可以利用如下语句:
 

Car.prototype.color=null;//注意大写,前面定义的constructor function是小写,所有创建的object都会增加color属性
car1.color="black";//只有car1增加color属性

object拥有的属性,可以本身就是一个对象。如下,定义person对象

function person(name, age, sex) {
    this.name = name
    this.age = age
    this.sex = sex
 }

实例化2个person型对象

rand = new person("Rand McKinnon", 33, "M");
ken = new person("Ken Jones", 39, "M");

之后可以定义car,其包含owner属性本身就是persion的一个实例。如下:

function car(make, model, year, owner) {
    this.make = make;
    this.model = model;
    this.year = year;
    this.owner = owner
 }

实例化car对象时,如下:

car1 = new car("Eagle", "Talon TSi", 1993, rand);
car2 = new car("Nissan", "300ZX", 1992, ken);

注意:如果访问car2的owner的name属性,通过如下的方法:

car2.owner.name

4,定义方法

语法如下:

object.methodname = function_name

其中,object为现存的对象名称,methodname为指定的方法名称(任意取名), function_name为已经存在的函数名称。

例如,上例的基础上添加一个独立方法

function displayCar() {
    var result = "A Beautiful " + this.year + " " + this.make
      + " " + this.model;
    alert(result);
 }

之后通过
 

car1.displayCar=displayCar;

设定car1的display方法。

此外,可以通过重新定义constructor function来添加方法。如下例。

function car(make, model, year, owner) {
    this.make = make;
    this.model = model;
    this.year = year;
    this.owner = owner;
    this.displayCar = displayCar;
 }

 




原创文章,如转载请注明:转载自金色坐标 [ http://www.kingxy.com/ ]

本文链接地址:http://www.kingxy.com/archives/208.html
  • quote 2.普加
  • http://www.pujia.com
  • 我是过来给楼主加油的,我也是搞网站这一块,想从事技术,收藏了您的博客,要是不忙的话,就看看我的网站,有没有语言错误啥的。嘿嘿。谢谢啦。普加www.pujia.com
  • 2010-3-24 11:48:39 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 通过Google订阅本站
  • 通过bloglines订阅本站
  • 通过抓虾订阅本站
  • 通过yahoo订阅本站

Search

Google

最新评论及回复

最近发表

金色坐标博客——京ICP备09009094号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
KingXY Blog - This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.