博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
语言精粹【摘要】
阅读量:6768 次
发布时间:2019-06-26

本文共 1355 字,大约阅读时间需要 4 分钟。

if (typeof Object.beget !== 'function') {

Object.beget = function (o) {

var F = function () {};
F.prototype = o;
return new F();
};
}
var another_stooge = Object.beget(stooge);

 

Function.prototype.method = function (name, func) {

if (!this.prototype[name]) {
this.prototype[name] = func;
}
};
Object.method('superior', function (name) {
var that = this,
method = that[name];
return function ( ) {
return method.apply(that, arguments);
};
});

var mammal = function (spec) {

var that = {};

that.get_name = function ( ) {

return spec.name;
};

that.says = function ( ) {

return spec.saying || '';
};

return that;

};

var myMammal = mammal({name: 'Herb'});

var cat = function (spec) {

spec.saying = spec.saying || 'meow';
var that = mammal(spec);
that.purr = function (n) {
var i, s = '';
for (i = 0; i < n; i += 1) {
if (s) {
s += '-';
}
s += 'r';
}
return s;
};
that.get_name = function ( ) {
return that.says( ) + ' ' + spec.name +
' ' + that.says( );
}
return that;
};
var myCat = cat({name: 'Henrietta'});
var coolcat = function (spec) {
var that = cat(spec),
super_get_name = that.superior('get_name');
that.get_name = function (n) {
return 'like ' + super_get_name( ) + ' baby';
};
return that;
};

var myCoolCat = coolcat({name: 'Bix'});

var name = myCoolCat.get_name( );
// 'like meow Bix meow baby'

 

转载于:https://www.cnblogs.com/dingyuanxin/p/4064991.html

你可能感兴趣的文章
谁说程序员必须要加班
查看>>
(旧)子数涵数·Flash——初识ActionScript
查看>>
SQL ★ 基本语句2
查看>>
好歌推荐---适合跑步或者骑行
查看>>
ubuntu下截图工具推荐 -- [deepin-scrot]
查看>>
8、判断三角形ABC中是否有点D
查看>>
2 Django REST Framework 开发 ---- APIView
查看>>
三:Linux 的基本命令、
查看>>
go中间的&和*
查看>>
VC6打开一个文件或工程的时候,会导致VC6崩溃而关闭
查看>>
理解和使用Linux的硬件抽象层HAL
查看>>
[Ruby on Rails系列]1、开发环境准备:Vmware和Linux的安装
查看>>
类别列表_显示树状结构
查看>>
(待写)五大常用算法:分治、动态规划、贪心、回溯和分支界定
查看>>
C++ - memset的效率和源码分析
查看>>
小程序开发过程中遇到的问题
查看>>
mysql中删除binlog的方法?mysql中如何删除binlog?
查看>>
1006. Sign In and Sign Out (25)
查看>>
Google Flutter的学习与使用
查看>>
工厂模式
查看>>