【JavaScript】获取未知类的结构
目录结构:
为什么需要获取类结构的代码
笔者认为主要是方便,如果一个项目很大或是引用了其它地方的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>";
- }
- 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】获取未知类的结构的更多相关文章
- php反射机制获取未知类的详细信息
使用ReflectionClass就可以获取未知类的详细信息 demo: require("hello.php"); $class = new ReflectionClass(&q ...
- java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包
首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; imp ...
- java 深入技术七(类的结构和反射)
1.java反射(reflect) java 类的结构 java反射机制就是把java类按结构分解,每一部分对应特定的反射类 java反射机制允许运行时加载,探知和使用在编译期间完全未知的classe ...
- C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱
一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- JavaScript获取客户端计算机硬件及系统等信息的方法
JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInf ...
- JavaScript里的类和继承
JavaScript与大部分客户端语言有几点明显的不同: JS是 动态解释性语言,没有编译过程,它在程序运行过程中被逐行解释执行JS是 弱类型语言,它的变量没有严格类型限制JS是面向对象语言,但 没有 ...
- javascript获取元素的计算样式
使用css控制页面有4种方式,分别为行内样式(内联样式).内嵌式.链接式.导入式. 行内样式(内联样式)即写在html标签中的style属性中,如<div style="width:1 ...
- 站在OC的基础上快速理解Swift的类与结构体
阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡 ...
随机推荐
- Sublime Text执行js
Sublime Text执行js 在Build Sytem添加以下内容: { "cmd": ["node", "$file"], " ...
- HTML5的特性,发展,及使用
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #ffffff } p.p2 { margin: 0.0px 0. ...
- Unity3D研究院之Prefab里面的Prefab关联问题
最近在做UI部分中遇到了这样的问题,就是Prefab里面预制了Prefab.可是在Unity里面一旦Prefab预制了Prefab那么内部的Prefab就失去关联.导致与如果要改内部的Prefab需要 ...
- 解决HubbleDotNet搜索引擎索引数据不全的问题
HubbleDotnet是国产.NET平台搜索引擎的翘楚,开放源代码,使用方便,不过我一直在非生产环境下使用.官方网页在HubbleDotNet开源全文搜索数据库项目--技术详解. 以前当数据库使用M ...
- Visual Studio 2015无法进行Package Restore的原因和解决方案
这篇文章是记录在我的当前电脑上面,安装Visual Studio 2015 Community Edition出现的无法进行Package Restore的问题,很可能在你的电脑上面无法重现.我的环境 ...
- 读《linux内核完全注释》的FAQ
以下只是个人看了<linux内核完全注释>的一点理解,如果有错误,欢迎指正! 1 eip中保存的地址是逻辑地址.线性地址还是物理地址? 这个应该要分情况.eip保存的是下一条要执行的指令地 ...
- DDD 领域驱动设计-“臆想”中的实体和值对象
其他博文: DDD 领域驱动设计-三个问题思考实体和值对象 DDD 领域驱动设计-三个问题思考实体和值对象(续) 以下内容属于博主"臆想",如有不当,请别当真. 扯淡开始: 诺兰的 ...
- [C#]浅析ref、out参数
转载:http://www.cnblogs.com/vd630/p/4601919.html#top 按引用传递的参数算是C#与很多其他语言相比的一大特色,想要深入理解这一概念应该说不是一件容易的事, ...
- android 伸缩控件ExpandableListView 展开失败的可能原因。
(原创)转载请声明出处http://www.cnblogs.com/linguanh/ 问题原型: ExpandableListView 展开失效. --------------------直接看结论 ...
- canvas实现拖动页面时显示窗口视频
简介 当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽. 今晚心血来潮,起了动手试试的念头.我 ...