javascript面向对象之二 命名空间-js面向对象

跟版素材网(www.genban.org)提供命名空间,等网页设计素材资源,提供相关网页设计资源的教程和免费下载。跟版网,专业织梦网页设计模板资源站。。
最简单创建命名空间的方法:
代码如下:

var java = {};
java.util = {};
//这样就创建成功了命名空间:java.util
//我们可以在java.util下面加类(函数),属性,或对象
java.util.HashMap = function()
{
this.ShowMessage = function()
{
alert("java.util.HashMap");
}
}
var map = new java.util.HashMap();
alert(map.ShowMessage()); //显示结果:java.util.HashMap

//封装创建命名空间的方法:
//定义一个对象,js中用{}花括号定义对象,等同于 var JsObject = new Object();  
代码如下:

var JsObject = {};
JsObject.namespace = function() //在JsObject对象下定义一个函数namespace
{
 /*下面代码中arguments为函数传入的参数,在function未明确定义参数时,
  function也可以传入参数,并用arguments来 接收,arguments类似数组,
  如果传入多个参数,将按顺序保存,取值法:arguments[0],arguments[1]....*/
var a = arguments,o = null,d,rt;
for(var i = 0; i < a.length; i++)
{
d = a[i].split('.'); //将传入的参数用符号'.' 进行分割,并放入d数组中。
rt = d[0];
//判断数组中的第一个值是否未定义,如果未定义,便定义为空对象{},并赋值给变量o
eval('if (typeof ' + rt + ' == "undefined"){'
      + rt + ' = {};} o = ' + rt + ';');
  for(var j = 1; j < d.length; j++)
  {
    /*循环遍历数组d每个值作为key,加入到对象o中,如果key在o中存在,则取o中值,若
    不存在,则赋值为空对象{} */   
    o[d[j]] = o[d[j]] || {};
    o = o[d[j]];
  }
}
}
JsObject.namespace("org.myJs"); //申明命名空间:org.myJs
org.myJs.Student = function() //在命名空间org.myJs下定义类Student
{
    //定义类Student中的变量,并赋予初值,但此变量的访问权限是public
this.studentNo = 's001';
this.studentName = '小明';
this.sex = '男';
}
var s = new org.myJs.Student(); //创建Student类的对象
alert('学号:'+s.studentNo);
alert('姓名:'+s.studentName);
alert('性别:'+s.sex);

效果和第一篇 (一)javascript经验总结面向对象—类 结果一样
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

将如下代码加到你网页的头部之间: meta name=viewport content=width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no meta name=apple-mobile-web-app-capable content=yes / meta name=apple-mobile-web-app-statu
遇到网页上有精美图片或者精彩文字想保存时,通常大家都是选中目标后按鼠标右键,在弹出菜单中选择图片另存为或复制来达到我们的目的。但是,目前有许多网页都屏蔽了鼠标右键,那么用js如何实现禁止鼠标右键的功能呢? 1、与禁止鼠标右键相关的JS说明 script
最近遇到一个需求,需要点击按钮,复制 p 标签中的文本到剪切板 之前做过复制输入框的内容,原以为差不多,结果发现根本行不通 尝试了各种办法,最后使了个障眼法,实现了下面的效果 一、原理分析 浏览器提供了 copy 命令 ,可以复制选中的内容 document.exe
这里不能用css样式选择器选择input组件,设置 border:none;或border: 0px;outline:none;cursor: pointer; 亲测没有用处,只有写这种格式时生效,如下: input type=text style=border:none;
String对象的方法 方法一: indexOf() (推荐) var str = 123;console.log(str.indexOf(3) != -1 ); // trueindexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二: search() var str = 1
在video标签上加个autoplay属性,在PC端浏览器里面运行流畅,但是在手机浏览器里面打开无法播放。原来现在的手机浏览器是不允许网页中视频自动播放的,只有与用户进行了一次交互动作,才可以播放视频。(音频同理) 方案一: 在页面上加一个弹框,用户点击了