`
鹤惊昆仑
  • 浏览: 229046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

模拟实现console.dir函数

阅读更多
function dir(obj,name,initContainer){
	var ul = initContainer ? initContainer : document.createElement("ul");
	var li = document.createElement("li");
	var span = document.createElement("span");
	span.innerHTML = "+"
	span.className = "plus";
	span.onclick = function(){
		if(this.rendered){
			if(this.className === "minus"){
				this.className = "plus";
				this.innerHTML = "+"
				this.parentNode.lastChild.style.display = "block";
			}else{
				this.className = "minus";
				this.innerHTML = "-"
				this.parentNode.lastChild.style.display = "none";
			}
			return ;
		}
		var ul = document.createElement("ul");
		for(var k in obj){
			dir(obj[k],k,ul)
		}
		li.appendChild(ul);

		this.className = "minus";
		this.innerHTML = "-"
		this.rendered = true;
	}
	li.appendChild(span);
	var span2 = document.createElement("span");
	name = name || obj.toString();
	span2.innerHTML = name + " : " + typeof obj;
	li.appendChild(span2);
	ul.appendChild(li);
	return ul
}

/*-----------------------------Test dir--------------------------------*/
window.onload = function(){
	document.body.appendChild(dir(window));
}

测试打印出window对象的所有属性和方法,见附件。

另外还可以排序,以下按属性和方法的名称排序(当然也可以按照typeof类型排序):
           var properties = [];
            for(var p in obj){
                properties.push(p);
            }
            properties.sort();
            var len = properties.length;
            for(var i=0;i<len;i++){
                dir(obj[properties[i]],properties[i],ul)
            }
            li.appendChild(ul);

  • 大小: 32.1 KB
0
0
分享到:
评论

相关推荐

    ie9 提示'console' 未定义问题的解决方法

    这个模拟对象会将所有`console`方法的调用重定向到空函数: ```javascript window.console = window.console || (function() { var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c....

    cmd初步实现.rar

    在本压缩包“cmd初步实现.rar”中,包含的是一个使用C#编程语言实现的简易命令行工具,它模拟了Windows操作系统中的基本命令,如`cd`(改变目录)、`dir`(列出目录内容)和`del`(删除文件)。通过这个项目,我们...

    node.js 一个简单的页面输出实现代码

    这些函数可以模拟 `console` 对象的功能,提供更详细的控制。例如,`require('util')` 模块被用来获取 `util.inspect`,用于更详细地查看对象的内部结构。 在 Node.js 中,`require` 是一个全局函数,用于加载模块...

    23-readline (逐行读取).pdf

    `readline`模块还支持自定义完成函数(completer),允许你实现类似命令行补全的功能。`readline.cursorTo(stream, x, y)`和`readline.clearLine(stream, dir)`等方法则提供了对终端光标的控制,帮助构建更复杂的...

    Node.js-40行node.js代码实现简易的图片爬虫

    这个爬虫可以轻松地扩展,例如增加多线程下载、处理异步错误、设置请求头以模拟浏览器、添加代理支持、设置下载限制等。当然,实际项目中可能还需要考虑其他因素,如网站的反爬策略、版权问题以及遵守robots.txt规则...

    放大控制台演示

    8. 模拟用户交互:在控制台中,可以通过执行JavaScript代码模拟用户点击、表单提交等交互行为,这对于测试和调试事件处理函数非常有用。 9. AJAX请求监控:可以使用`console.log()`或者其他控制台方法来跟踪和记录...

    ChromeConsoleTools

    1. **变量查看与操作**:可以使用`console.log()`打印变量的值,`console.dir()`显示对象的详细信息,`console.table()`以表格形式展示数据。 2. **性能分析**:`console.time()`和`console.timeEnd()`可以用于计算...

    完整版枚举指定目录的所有子目录和文件例程.rar

    Console.WriteLine(info.FullName); } } } ``` 这个C#程序将递归地枚举所有子目录和文件。 以上就是不同编程环境和语言中枚举指定目录所有子目录和文件的基本方法。根据提供的压缩包文件名,这可能是一个详细...

    操作系统模拟文件管理大作业 (3).pdf

    其他函数如`Init()`初始化文件树,`ParseCommand()`解析用户输入的命令,`ExecuteCommand()`执行命令,以及针对特定命令(如`cdCmd()`, `creatCmd()`, `delCmd()`, `dirCmd()`, `mdCmd()`, `rdCmd()`)的处理函数。...

    my_ajax_note

    模拟百度的下拉搜索功能。 - **步骤一**:设计HTML页面。 - **步骤二**:设置CSS样式。 - **步骤三**:设置JavaScript。 示例:设置JavaScript ```javascript $('#searchInput').on('input', function() { var ...

    c语言坦克游戏源代码.rar

    C语言坦克游戏通常基于文本模式(console)进行图形绘制,使用ASCII字符来模拟游戏画面。例如,使用'*'表示坦克,'#'表示墙壁,空格表示地面。通过更新屏幕上的字符,实现动态效果。在窗口系统上,可以借助`ncurses...

    C++编写的简单贪吃蛇游戏

    在C++中,可以利用console输出来模拟游戏画面,或者通过图形库如SFML、SDL进行更丰富的图形渲染。 游戏的难度主要通过调整游戏速度(即每帧的延迟时间)和初始蛇长度来实现。低难度时,蛇速度较慢,初始长度较长;...

    C#自制DOS控制台

    例如,他们可能定义了一系列函数,模拟DOS中的常用命令,如`dir`(显示目录内容)、`cd`(改变当前目录)、`copy`(复制文件)等。 对于用户输入的解析,开发者可能会使用`Console.ReadLine()`方法获取整行输入,...

    Visual C++ 说明

    这个库提供了丰富的函数集,用于模拟Borland Basic Graphic Interface (BGI)的功能,使得程序员能够创建复杂的图形应用。 首先,我们要了解的是Visual C++绘图库中的基本函数。例如,`arc`用于画弧线,`bar`用于...

    Linux 设备模型之终端设备(tty)驱动架构分析

    - **tty_io.c**:定义了 TTY 设备通用的 file_operation 结构体,并实现了用于注册 TTY 设备的接口函数 `tty_register_driver()`。此外,该文件还提供了用于注册线路规程的接口函数 `tty_register_ldisc()`。 - **...

    新版Android开发教程.rar

    � 源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发 出 更具差异性的应用。 � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要...

    如何在django中添加日志功能

    本篇文章将详细介绍如何在Django项目中实现日志功能,并通过实例代码进行演示,以便读者能够更好地理解和应用。 #### 一、日志配置 首先,在`settings.py`文件中配置日志设置。以下是具体的配置示例: ```python ...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

Global site tag (gtag.js) - Google Analytics