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

代码复用深入了解javascript

*代码复用**一、避免**模式1:默认模式*functionParent(){this.name123;}Parent.prototype.sayfun

/*代码复用
*/
/*一、避免
*/
/*模式1:默认模式
*/function Parent() {this.name = "123";}Parent.prototype.say = function () {return this.name;}function Child(name) { }Child.prototype = new parent();var kid = new Child();kid.name = "abc";kid.say(); //abc// 缺点:不能让参数传进给Child构造函数var s = new Child('Seth');console.log(s.say()); // "123"/*二、推荐
*/
// 1. 模式1:原型继承function object(o) {function F() {}F.prototype = o;return new F();}// 要继承的父对象var parent = {name: "Papa",};// 新对象var child = object(parent);// 父构造函数function Person() { // an "own" property this.name = "Adam";}// 给原型添加新属性Person.prototype.getName = function () {return this.name;};// 创建新personvar papa = new Person();// 继承var kid = object(papa);console.log(kid.getName()); // "Adam"// 继承原型var kid = object(Person.prototype);console.log(typeof kid.getName); // "function",因为是在原型里定义的console.log(typeof kid.name); // "undefined", 因为只继承了原型//使用ECMAScript5/* 使用新版的ECMAScript 5提供的功能 */var child = Object.create(parent);var child = Object.create(parent, {age: { value: 2 }// ECMA5 descriptor
});console.log(child.hasOwnProperty("age")); // true// 2. 模式2:复制所有属性进行继承// 3. 模式3:混合(mix-in)
//
4. 模式4:借用方法

 

转:https://www.cnblogs.com/ruanyifeng/p/4691991.html



推荐阅读
author-avatar
手机用户2502856985
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有