您的位置:首页 > Web前端 > JavaScript

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

2014-11-15 16:12 423 查看
看了一道题目《用面向对象的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({
EnglishName: 'monkindey',
Email: 'monkindey@163.com',
School: '广东工业大学计算机学院网络工程 11级'
});

console.dir(me);


复制代码到chrome开发者工具中,效果可能会更好点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: