目录结构:

contents structure [+]

为什么需要获取类结构的代码

笔者认为主要是方便,如果一个项目很大或是引用了其它地方的js文件,如果顺着src文件查找会很麻烦。为了对代码理解的更好,还需要对javaScript的类有所了解,更多情况读者可以参考JavaScript定义类的三种方法

关于javascript中对类的简介

其实Javascript中没有类这个定义,但是有类这个概念。很多人都写过这样的代码,就是一个关键字 function,然后定义一个方法名,方法名后紧跟一对括号。

定义类的方法

第一种

function Cat() {
    this.name = "大毛";
}

或是

Cat.prototype.makeSound = function(){
  alert("喵喵喵");
}

然后通过

var cat = new Cat();

创建对象,和

cat.makeSound();

来调用。

第二种

通过Object.create()创建

  var cat={
name:"guaiguai"
}
var q=Object.create(cat);

不过这种方式下,也可以直接用

cat.name

调用。

Demo

HTML页面

<!DOCTYPE html>
<html>
<head>
<title>showProperty.html</title> <meta name="content-type" content="text/html; charset=UTF-8"> <script src="date.js"></script>
</head> <body>
<h1>show Object detail</h1>
<script> var num=new date(); var property="<h2>property:</h2>";
var functions="<h2>function:</h2>";
var complete="<h2>complete:</h2>" //get complete information
complete=complete+date; //through function and property
for(prop in num){
if(typeof(num[prop])=="function"){
functions=functions+prop+":"+num[prop]+"<br>";
}else
property=property+prop+":"+num[prop]+"<br>";
}
//print
document.write(complete+"<br>"+property+"<br>"+functions); </script>
</body>
</html>

data文件

function date() {
var year;
var month;
var day;
this.year=new Date().getFullYear();
this.month=new Date().getMonth();
this.day=new Date().getDate();
var fun; this.fun=function(){
alert("I am coming fun1");
this.year=new Date().getFullYear()-1;
this.month=new Date().getMonth()-1;
this.day=new Date().getDay()-1;
}
}

注意事项

上面这段代码只能测试从外面连接进来的js文件里的类,而js自带的类就不行,比如:将上面的

var num=new date();

换成

var num=new Date();

就不行,这种情况下是不会显示时间类的结构的,除非在覆盖后,才会显示。

参考文章

http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html

http://www.jb51.net/article/20430.htm

http://www.cnblogs.com/xcj26/archive/2013/04/08/3006023.html

本文为博主原创文章,如需转载请注明出处。

【JavaScript】获取未知类的结构的更多相关文章

  1. php反射机制获取未知类的详细信息

    使用ReflectionClass就可以获取未知类的详细信息 demo: require("hello.php"); $class = new ReflectionClass(&q ...

  2. java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包

    首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; imp ...

  3. java 深入技术七(类的结构和反射)

    1.java反射(reflect) java 类的结构 java反射机制就是把java类按结构分解,每一部分对应特定的反射类 java反射机制允许运行时加载,探知和使用在编译期间完全未知的classe ...

  4. C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱

    一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C ...

  5. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  6. JavaScript获取客户端计算机硬件及系统等信息的方法

    JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInf ...

  7. JavaScript里的类和继承

    JavaScript与大部分客户端语言有几点明显的不同: JS是 动态解释性语言,没有编译过程,它在程序运行过程中被逐行解释执行JS是 弱类型语言,它的变量没有严格类型限制JS是面向对象语言,但 没有 ...

  8. javascript获取元素的计算样式

    使用css控制页面有4种方式,分别为行内样式(内联样式).内嵌式.链接式.导入式. 行内样式(内联样式)即写在html标签中的style属性中,如<div style="width:1 ...

  9. 站在OC的基础上快速理解Swift的类与结构体

    阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡 ...

随机推荐

  1. Java Thread 的使用

    Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别   一.线程的状态 在正式学习 ...

  2. 在计算机 . 上没有找到服务 WAS

    添加的程序不全导致或者服务没开启导致 重新打开IIS,刷新一下 发现已经可以了,不再标红报错了

  3. Android之genymotion模拟器安装于配置

    今天是双休日,可怜没人陪,只好一个人玩电脑了,之前别人一直给我推荐genymotion模拟器,说各种方便,秒杀Android自带模拟器,所以就趁这个周末搞了一下,总体感觉还挺不错的,确实比Androi ...

  4. android:theme决定AlertDialog的背景颜色

    最近遇到一个很奇怪的问题,两个项目弹出的dialog背景颜色不一样,一个是黑色的,一个是白色的,最后发现是AndroidManifest.xml文件里面application指定的android:th ...

  5. iPhone 6/plus iOS Safari fieldset border 边框消失

    问题:iPhone6 plus 手机浏览网页,fieldset border 边框消失. 示例代码: <div> <fieldset style="border: 1px ...

  6. 玩转Jquery,告别前端知道思路忘记知识点的痛苦

    本节内容: 本章主要讲解一下jquery,主要是工作中用的前端框架是datetables框架,然后datetables框架又是基于jqeury研发的,所以要想学一个东西,就必须要了解其底层,不然走路都 ...

  7. 大数据实践-数据同步篇tungsten-relicator(mysql->mongo)

    // mongo)";digg_bgcolor = "#FFFFFF";digg_skin = "normal"; // ]]> // [导读] ...

  8. ORA-01439: 要更改数据类型, 则要修改的列必须为空

    此方法有3处update操作,建议根据实际情况的数据量测试评估效率后选用. 思路:定义要更新数据类型的列为[col_old],数据类型为[datatype_old],临时列为[col_temp],数据 ...

  9. Linux入门

    参考资料:http://www.92csz.com/study/linux/ [Linux系统目录结构] 登录系统后,在当前命令窗口下输入 ls / 你会看到 以下是对这些目录的解释: /bin bi ...

  10. 去哪儿搜索引擎QSearch设计与实现

    本次演讲主要介绍的是QSearch的具体设计和应用场景,并分别解答以下几个问题:QSearch与开源垂直软件Lucene的区别:具体业务的实现技巧.以及QSearch的具体设计:如何通过Partial ...