分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

用js面向对象思想封装插件

发布时间:2023-09-06 01:16责任编辑:郭大石关键词:js面向对象

js是基于原型的面向对象语言,如果你学过java,c#等正统面向对象语言,你会难以理解js的面向对象,他和普通的面向对象不太一样,今天,我们通过封装一个toast插件,来看看js面向对象是如何运行的。

html

<div id="toast"></div>

css

* { ???margin: 0; ???padding: 0;}#toast { ???position: absolute; ???display: none; ???left: 50%; ???top: 50%; ???z-index: 99999; ???margin: 0 auto; ???-webkit-transform: translate(-50%); ???transform: translate(-50%); ???width: 50%; ???padding: 5px; ???border-radius: 5px; ???text-align: center; ???color: #fff; ???background-color: #000;}

使用方法

var toast = new Toast("toast", "你好,对话框");toast.show();

js核心代码

 1 (function() { 2 ????/*** 3 ?????* 信息提示组件Toast v1.0 4 ?????* @param {Object} container 内容容器(必填) 5 ?????* @param {Object} content 文字内容(可选) 6 ?????* @param {Object} duration 显示时长(可选) 7 ?????* 使用方法 8 ?????* var toast = new Toast("toast", "你好,对话框"); 9 ?????* toast.show();(支持回调函数)10 ?????*/11 ????function Toast(container, content, duration) {12 ????????this.container = document.getElementById(container);13 ????????this.content = content || "这是一段对话";14 ????????this.duration = duration || 2000;15 ????}16 17 ????Toast.prototype.show = function(callback) {18 ????????this.callback = callback || function() {};19 ????????this.container.style.opacity = 1;20 ????????this.container.style.display = "block";21 ????????this.container.innerHTML = this.content;22 23 ????????setTimeout(function() {24 ????????????this.callback && this.callback();25 ????????????this.hide();26 ????????}.bind(this), this.duration);27 28 ????????return this;29 ????}30 31 ????Toast.prototype.hide = function(callback) {32 ????????this.callback = callback || function() {};33 34 ????????this.container.style.display = "none";35 ????????this.callback && this.callback();36 ????????return this;37 ????}38 39 ????window.Toast = Toast;40 41 })(window);

Toas函数是一个构造函数,相当于面向对象语言中的类(class),并且有形参,函数内部代码相当于给成员变量赋值。通常在这里初始化成员变量,这就好理解了。接下里的show,hide方法都是在Toast上的原型上添加共有的方法,对应的是修饰词为public的一个成员方法。函数最后都会返回this(当前函数执行的上下文),是为了可以进行链式调用。这些方法都支持回调函数,当函数执行完毕后会执行传入的回调函数,这在编写插件的时候通常都会用到,比如说ajax请求完成后,你得到返回的数据,并且需要后续操作,这时就要用回调函数。因为代码都放在闭包环境下,外界访问不了里面的变量和方法,所以把Toast强行暴露出去,就可以在window访问到。

用js面向对象思想封装插件

原文地址:http://www.cnblogs.com/zt123123/p/7644974.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved