热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用面向对象的Javascript来介绍一下自己

看了一道题目《用面向对象的Javascript来介绍一下自己》,然后自己觉得挺好玩的,所以就编写如下的代码。

看了一道题目《用面向对象的Javascript来介绍一下自己》,然后自己觉得挺好玩的,所以就编写如下的代码。

// HELPER
function extend(sup, overrides) {
	var sub = overrides && overrides.constructor || function() {
		sup.apply(this, arguments);
	};
	var fn = function() {};
	var subp;
	fn.prototype = new sup;
	subp = sub.prototype = fn.prototype;
	subp.cOnstructor= sub;
	apply(subp, overrides);
	sub.superClass = sup.prototype;
	return sub;
}

function apply(o, c) {
	if (o && c && typeof c == 'object') {
		for (var p in c) {
			o[p] = c[p];
		}
	}
	return o;
}

function FrontEnder() {
	this.skills = ['HTML', 'CSS', 'Javascript'];
}

apply(FrontEnder.prototype, {
	code: function() {
		console.log('我能编写处理业务逻辑代码');
	},
	paint: function() {
		console.log('我能还原设计稿');
	},
	debug: function() {
		console.log('我能使用工具调试代码');
	}
});

var Me = extend(FrontEnder, {
	constructor: function() {
		// 个人的性格是怎么样的?等完善
		var _character = '';
		return function Me(config) {
			cOnfig= config || {};
			Me.superClass.constructor.call(this);
			this.skills = this.skills.concat(['HTML5', 'CSS3', 'Grunt', 'Zepto', 'Webapp', 'ChromeDevtool']);
			apply(this, config);
		}
	}(),
	paint: function() {
		Me.superClass.paint.call(this);
		console.log('我可以用CSS3、HTML5还原设计稿');
	},
	code: function() {
		Me.superClass.code.call(this);
		console.log(function() {
			/**
			1. 根据规范来命名如驼峰、_、$等;
			2. 使用闭包来避免变量污染;
			3. 相同处理逻辑代码抽出来作为一个功能模块;
			4. 避免与HTML、CSS产生耦合;
			5. 注意代码的性能优化
			*/
		}.toString().split('\n').slice(2, -2).toString().replace(/\t/g, '').split(',').join('\n'))
	},
	manage: function() {
		console.log('我有一个属于自己的代码库和记录知识点的博客');
	},
	habit: function() {
		console.log('twitter、HTML5Rock、CSS3-trick、W3.org...');
	},
	enjoy: function() {
		console.log('我喜欢打篮球和看NBA,最喜欢的球员是Steve·Nash');
	}
});

var me = new Me({
	ChineseName: '张楷豪',
	EnglishName: 'monkindey',
	Birthday: '1993-07',
	Email: 'monkindey@163.com',
	School: '广东工业大学计算机学院网络工程 11级'
});

console.dir(me);

到chrome开发者工具中,效果可能会更好点。


推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文详细比较了CSS选择器和XPath在Selenium中通过页面结构定位元素的优劣,并提供了具体的代码示例,帮助读者理解两者在不同场景下的适用性。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • Web App vs Native App:未来的移动应用趋势
    随着移动互联网的发展,Web App和Native App之间的竞争日益激烈。对于开发者而言,选择哪一种技术路径更为明智?本文将深入探讨两种应用模式的特点及未来趋势。 ... [详细]
  • 程序员妻子吐槽:丈夫北漂8年终薪3万,存款情况令人意外
    一位程序员的妻子在网上分享了她丈夫在北京工作八年的经历,月薪仅3万元,存款情况却出乎意料。本文探讨了高学历人才在大城市的职场现状及生活压力。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
author-avatar
手机用户2502858127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有