javascript 之面向对象

来源:互联网 发布:avast手机安全软件 编辑:程序博客网 时间:2024/06/04 18:34

  下面提供三种,JAVASCRIPT三种构建自己对象的方法,有点面向的对象的味道 哟。。。。

 

 

   第一种:利用OBJECT函数

var Gallery = new Object();

window.onload= function(){   

 Gallery.Images = ['istockphoto_14149033.jpg', 'istockphoto_14232771.jpg', 'istockphoto_14667148.jpg'];  

 

  Gallery.CurrentIndex = 0;    Gallery._loopInterval = setInterval(Gallery.Next, 2500);

 

};

 

 

Gallery.Next = function(){  

  if(Gallery.CurrentIndex < (Gallery.Images.length-1))    {        Gallery.CurrentIndex++;    }    else    {        Gallery.CurrentIndex = 0;    }    Gallery.Display();

};

Gallery.Prev = function(){  

  if(Gallery.CurrentIndex > 0)    {        Gallery.CurrentIndex--;    }    else    {        Gallery.CurrentIndex = (Gallery.Images.length-1);    }    Gallery.Display();

};

 

Gallery.Display = function(){

    var photoGallery = document.getElementById('photo-gallery');    var currentImage = Gallery.Images[Gallery.CurrentIndex];    photoGallery.src = "../assets/img/"+currentImage;

};

 

  如上就创建了一个Gallery对象,其有三个属性,三个函数;

 

 

第二种:利用字面符号

 

var Gallery = {
    Images: ['istockphoto_14149033.jpg', 'istockphoto_14232771.jpg',
'istockphoto_14667148.jpg'],
    CurrentIndex: 0,
    Next: function()
    {
        if(Gallery.CurrentIndex < (Gallery.Images.length-1))
        {
            Gallery.CurrentIndex++;
        }
        else
        {
            Gallery.CurrentIndex = 0;
        }
        Gallery.Display();
    },
    Prev: function()
    {
        if(Gallery.CurrentIndex > 0)
        {
            Gallery.CurrentIndex--;
        }
        else
        {
            Gallery.CurrentIndex = (Gallery.Images.length-1);
        }
        Gallery.Display();
    },
    Display: function()
    {
        var photoGallery = document.getElementById('photo-gallery');
        var currentImage = Gallery.Images[Gallery.CurrentIndex];
        photoGallery.src = "../assets/img/"+ currentImage;
    }
};
window.onload = function()
{
    var _loopInterval = setInterval(Gallery.Next, 2500);
};

以上两种创建对象的方式只能实例化一次,这一点值得注意;

哪么如何在一个HTML文档中创建多个对象呢,就是下面的第三种方式;

第三种:使用object构造器,与prototype关键字;

代码如下 :

 

function GalleryObj()
{
    this.Images = ['istockphoto_14149033.jpg', 'istockphoto_14232771.jpg',
'istockphoto_14667148.jpg'];
    this.CurrentIndex = 0;
    this._loopInterval = setInterval(this.Next, 2500);
}

GalleryObj.prototype.Next = function()
{
    if(Gallery.CurrentIndex < (Gallery.Images.length-1))
    {
        Gallery.CurrentIndex++;
    }
    else
    {
        Gallery.CurrentIndex = 0;
    }
    Gallery.Display();
};

GalleryObj.prototype.Prev = function()
{
    if(Gallery.CurrentIndex > 0)
    {
        Gallery.CurrentIndex--;
    }
    else
    {
        Gallery.CurrentIndex = (Gallery.Images.length-1);
    }
    Gallery.Display();
};

GalleryObj.prototype.Display = function()
{
    var photoGallery = document.getElementById('photo-gallery');
    var currentImage = Gallery.Images[Gallery.CurrentIndex];
    photoGallery.src = "../assets/img/"+ currentImage;
};

var Gallery = new GalleryObj();
 

var Gallery2 = new GalleryObj();

以上三种方法创建的对象我们应该使用呢,其实跟我们平时调用JS中的方法一样;

<html>
<head>
<title>Getting Started with Object-Oriented JavaScript</title>
<script type="text/javascript" src="js/Gallery.js"></script>
</head>

<body>

<img src="../assets/img/istockphoto_14149033.jpg" id="photo-gallery" />
<p>
    <a href="#" onclick="Gallery.Prev();">&lt; Previous</a>
    &nbsp;
    <a href="#" onclick="Gallery.Next();">Next &gt;</a>
</p>

</body>
</html>

 

进阶:在第三种方式中,我们提到prototype关键字,我们可以利用这个关键字为对象添加方法,比如我们现在想为Array内置对象添加一个

GetIndex方法

 

 


Array.prototype.GetIndex = function(item)
{
 for(var i=0; i<this.length; i++)
 {
  if(this[i] == item)
            {
                return i;
            }
 }
}

 

 

使用如下 :

 

 <html>
<head>
<title>Getting Started with Object-Oriented JavaScript</title>
<script type="text/javascript" src="js/Array.js"></script>
<script type="text/javascript">
var Images = ['istockphoto_14149033.jpg', 'istockphoto_14232771.jpg',
'istockphoto_14667148.jpg'];
var index = Images.GetIndex('istockphoto_14232771.jpg');
alert("Index: "+ index);
</script>
</head>

<body>
</body>
</html>

 

如此,通过这种方法我们可以扩展javascript的核心对象,从而构建自己的javascript 工具;

 

写得很简陋,望大神们多提点提点,呵呵

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在香港专柜买东西柜员少给货怎么办 恶魔猎手第二神器任务没选择怎么办 电脑放久了开不了机怎么办 你在主持时说错话了怎么办 1、你在主持时说错话了怎么办? 领导让你替他参加重要会议怎么办 在备孕期老公照了片怎么办 和混混打架后被混混纠缠怎么办 开了一年的瑜伽馆想关掉会员怎么办 广东工厂宿舍里面床板有臭虫怎么办 胃癌手术后12天引流液多怎么办 八个月了胎儿头还在上面怎么办 喂奶一个月后奶头又裂开了怎么办 孩子吃奶吃的奶头裂开了怎么办 很想打坐久就是受不了腿疼怎么办 宝宝含乳一直纠正不过来怎么办 婴儿衘乳不正确只吸乳头怎么办 怀孕7个月了晚上睡不着怎么办 尚德学校学费交了一半退学怎么办 随着年龄的增长胸越来越来小怎么办 运动文胸里边的海绵垫会乱跑怎么办 带胸罩时在外面忽然扣子开了怎么办 我的脸一边大一边小怎么办 桶装水盖子吸在饮水机了怎么办? 孕37周大腿内侧被内裤磨烂怎么办 生存指南合成的时候闪退怎么办 王者荣耀队友用语音骂我怎么办? 轨道衡电子计量数据不对上怎么办 孕5个月胎儿发育慢怎么办 扎高马尾后面头发扎不上去怎么办 吃了不太新鲜的肉怎么办 军训腿疼的蹲不下去怎么办 面对对老师不尊重的学生该怎么办? 当学生犯了错老师应该怎么办? 用木棒按摩脚底感觉有疙瘩怎么办 人流后按摩造成子宫复位不好怎么办 留守儿童不去学校你该怎么办 在校读书的留守儿童自身应该怎么办 进行定向越野活动时迷路了怎么办 温十系统更新后卡死无法开机怎么办 在武术比赛中被打昏了了怎么办