您的位置:

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

包含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"); 

    } 

})

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

本文目录一览: 1、新手请教,如何将一段JS代码封装成一个方法 2、js代码如何封装成JS文件 3、js代码如何封装 新手请教,如何将一段JS代码封装成一个方法 鉴于楼主欠缺编程经验,我就先不说封装成

2023-12-08
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
包含js怎么绑定数据库文档介绍内容的词条

本文目录一览: 1、js 如何连接数据库 2、在js中的数据怎么插入数据库 3、怎样用js实现数据库绑定到下拉框 4、JS中怎么连接数据库,和提取数据库中的数据? 5、js怎么连接mysql数据库连接

2023-12-08
包含cdnbootstrap.min.js的词条

本文目录一览: 1、Bootstrap免费 CDN 加速服务/Bootstrap文件怎么引入 2、bootstrap怎么快速使用 3、bootstrap 导航条下拉菜单点击无反应? 4、怎么在页面里引

2023-12-08
包含createjs文字分行的词条

2022-11-23
包含python使用笔记24的词条

2022-11-21
包含js编译html代码的词条

本文目录一览: 1、如何用js动态写入html代码 2、如何使用js动态生成html代码 3、js中写的html代码怎么运行 如何用js动态写入html代码 所谓动态写入方法就是源文件代码中原来没有内

2023-12-08
包含查找替换js网页值的词条

本文目录一览: 1、js如何替换网页内容?能做的奖励50 2、怎么替换网页中的JS函数 3、如何用javascript全部替换网页内某个字符串 4、怎样用js替换网页里的指定字符串? 5、《web前端

2023-12-08
js代码总结体会,js基础知识总结笔记

本文目录一览: 1、js到底难不难学? 2、JS 代码 求解释 可以详细的 说明一下 谢谢 3、浅谈js写轮播图的思路与心得 4、JavaScript与WEB前台开发课程实训总结怎么写 5、js中继承

2023-12-08
包含java里ajax和js的词条

2022-11-10
包含js网页正文抽取的词条

本文目录一览: 1、js获取网页当中所有标签里面的文本 2、javascript 怎么获取指定url网页中的内容 3、JS如何从另一个网页获取数据内容进行处理? 4、怎么用JS获取网页中指定标签内的选

2023-12-08
包含java基础笔记day1的词条

2022-11-20
包含python或内容从js加的词条

本文目录一览: 1、如何用python抓取js生成的数据 2、如何将python执行的程序结果参数传给JavaScript 3、python中如何调用js文件中的方法呢 4、Python怎么获取网页中

2023-12-08
包含cdnjsnet的词条

本文目录一览: 1、webpack使用HtmlWebpackPlugin进行cdn配置 2、优酷前端如何处理后端返回的切片视频流? 3、为什么需要使用及如何使用CDN 4、JS实现的将html转为pd

2023-12-08
包含linux内核js的词条

本文目录一览: 1、如何在linux内核中读写文件 2、linux服务器上的JS文件无法访问该怎么解决呢 3、linux服务器找不到js的函数 4、linux系统的JS判断如何写 5、linux操作系

2023-12-08
重学java笔记,java笔记总结

2022-11-23
包含网页内有多个相同的js变量的词条

本文目录一览: 1、同一个页面中的两个独立的js之间变量名相同可以么? 2、一个页面中定义两个同名的JS函数,调用会是什么结果 3、html页面出现了两个同名js文件导致程序无法正常运行 4、两个不同

2023-12-08
包含extjs内存监视的词条

本文目录一览: 1、ExtJS是什么,一位学长说的,对这个从未听说 2、Eclipse里面放了Extjs4的jar包,Eclipse很卡,卡得死机,这什么情况呢? 3、extjs如何优化缓存? 4、e

2023-12-08
js代码中script,js代码中的问号是什么意思

本文目录一览: 1、javascript中script的SRC属性 2、JS代码里加载script代码,并隐藏其内容怎么弄呢? 3、使用javascript必须使script标签吗 javascrip

2023-12-08
包含js禁用ctrl+a全选的词条

本文目录一览: 1、电脑上面的ctrl+A 不能全选了 怎么设置过来? 2、javascript中实现ctrl+a不能全选的功能的代码 3、CTRL+A不能全选 4、js 如何阻止 “Ctrl”+鼠标

2023-12-08