包含js文字内容部分选中的代码封装的词条

本文目录一览:

新手请教,如何将一段JS代码封装成一个方法

鉴于楼主欠缺编程经验,我就先不说封装成jQuery插件等高大上的做法了。单就论封装成方法而言。

方法,也就是函数。是面向过程式语言一种代码复用的初级手段,简而言之,就是把重复的部分用函数封装起来。

例如猫叫多遍,cat.meow(), 你总不可能写对应次数的代码,一般会写成:

function meow(num){

    for(var i=0;inum;i++){

        cat.meow()

    }

}

meow(1000)

这就是一种最基础的代码复用。

当然,面向对象的语言也许有更简单的 cat.meow(1000)

那么,针对楼主的情况。逐步讲一下各层次的方法。最简单的用函数封装一下就是:

function effect(srcDom,destDom,className){

    $(srcDom).mouseenter(function(){

        $(destDom).addClass(className)

    }).mouseout(function(){

        $(destDom).removeClass(className)

    })

}

然后调用

effect(‘#plate-1′,’#plate-1hover’,’plate-1after’)

effect(‘#plate-2′,’#plate-2hover’,’plate-2after’)

effect(‘#plate-3′,’#plate-3hover’,’plate-3after’)

鉴于楼主的DOM的ID和Class命名比较有规律,可以写成这样

function effect(name){

    $(‘#’+name).mouseenter(function(){

        $(‘#’+name+’hover’).addClass(name+’after’)

    }).mouseout(function(){

        $(‘#’+name+’hover’).removeClass(name+’after’)

    })

}

然后调用

effect(‘plate-1’)

effect(‘plate-2’)

effect(‘plate-3’)

但是这样还是不够通用,楼主应该看看事件方面有关事件委托的知识

js代码如何封装成JS文件

把你的JS代码复制到一个top.js文件里,注意代码不包含script和/script标签

然后在你需要调用的地方直接引用就行了,比如

td

script src=””/script

/td

js代码如何封装

1. 定义js类 

js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 

代码如下:

function ShapeBase() { 

    this.show = function(){ 

        alert(“ShapeBase show”); 

    }; 

    this.init = function(){ 

        alert(“ShapeBase init”); 

    }; 

}

这个类里定义了两个方法:show和init, 需要注意的是这里用到了this来声明, 而不是var, 因为用var是用来定义私有方法的. 

另外, 我们还可以用prototype属性来定义Shape的方法. 

代码如下:

ShapeBase.prototype.show=function() 

    alert(“ShapeBase show”); 

ShapeBase.prototype.init=function() 

    alert(“ShapeBase init”); 

}

上面这种写法看起来不太直观,我们可以将所有的方法写在一起. 

代码如下:

ShapeBase.prototype={ 

    show:function(){ 

        alert(“ShapeBase show”); 

    }, 

    init:function() { 

        alert(“ShapeBase init”); 

    } 

};

现在, 类是写好了, 让我们写个js来测试下, 看看结果是不是跟我们想象的一样呢? 

代码如下:

function test(src){ 

    var s=new ShapeBase(); 

    s.init(); 

    s.show(); 

}

看到了吧, 其调用方式和C#一模一样, 而结果也如我们所料. 

到目前为止, 我们学会了如何创建js的类了, 但还只是实例方法,要是实现跟C#中的静态方法要怎么做呢? 

其实, 实现js的静态方法很简单, 看下面如何实现: 

代码如下:

//静态方法 

ShapeBase.StaticDraw = function() 

    alert(“method draw is static”); 

}

2. 实现JS类抽象和继承 

同样, js中也不支持类继承机制,但我们可以通过将父类prototype中的成员方法复制到子类的prototype中来实现. 

和类的继承一样,JavaScript也没有任何机制用于支持抽象类.但利用JavaScript语言本身的性质.可以实现自己的抽象类. 

首先来看看js中的虚方法, 在传统语言中虚方法是要先定义的, 而包含虚方法的类就是抽象类,不能被实例化,而在JavaScript中,虚方法就可以看作该类中没有定义的方法,但已经通过this指针使用了. 

和传统面向对象不同的是,这里虚方法不需经过声明,而直接使用了, 并且类也可以被实例化. 

先定义object的extend方法, 一个为静态方法,一个为实例方法, 这两个方法用于实现继承的prototype复制 

代码如下:

Object.extend = function(destination, source) { 

    for (property in source) { 

    destination[property] = source[property]; 

    } 

    return destination; 

Object.prototype.extend = function(object) { 

    return Object.extend.apply(this, [this, object]); 

}

接下来我们实现一个继承类Rect, 这里先用一种简单的方法来实现。 

代码如下:

function Rect() { } 

Rect.prototype = ShapeBase.prototype; //只这一句就行了 

//扩充新的方法 

Rect.prototype.add=function() { 

    alert(“Rect add”); 

}

这种方法不能用于重写,如果改变了show方法, ShapeBase的show也会指向同一函数可能是由于prototype赋值只是简单的改变指向地址. 

如果上面也定义了: 

Rect.prototype.show=function() { 

    alert(“Rect show”); 

}

那么执行结果如下: 

function test(){ 

    var s=new ShapeBase(); 

    s.show(); //结果:Rect show 

    var r=new Rect(); 

    r.show(); //结果:Rect show 

    r.add(); 

}

我们再使用object.extend实现继承, 并实现一个oninit虚方法, 修改ShapeBase如下: 

代码如下:

ShapeBase.prototype={ 

    show:function() 

    { 

        alert(“ShapeBase show”); 

    }, 

    initialize:function () { 

        this.oninit(); 

    } 

};

实现Rect类继承. 

代码如下:

Rect.prototype=(new ShapeBase).extend({ 

  //添加新的方法 

  add:function() { 

    alert(“Rect add”); 

    }, 

    //使用这种方法可以重写show方法 

    show:function() { 

        alert(“Rect show”); 

    }, 

    //实现虚方法 

    oninit:function() { 

    alert(“Rect oninit”); 

    } 

})

原创文章,作者:LLVP,如若转载,请注明出处:https://www.506064.com/n/148688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LLVPLLVP
上一篇 2024-11-03 15:17
下一篇 2024-11-03 15:17

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Python飞机大战中文字资源分析

    Python飞机大战是一款经典的飞行射击游戏,在游戏过程中,玩家需要控制一架飞机不断消灭敌人,生存到最后。该游戏使用Python语言编写,其中涉及到的文字资源对游戏的整体体验有重要…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • 北化教务管理系统介绍及开发代码示例

    本文将从多个方面对北化教务管理系统进行介绍及开发代码示例,帮助开发者更好地理解和应用该系统。 一、项目介绍 北化教务管理系统是一款针对高校学生和教职工的综合信息管理系统。系统实现的…

    编程 2025-04-29

发表回复

登录后才能评论