40行实现javascript继承
来源:互联网 发布:卡盟网站如何优化 编辑:程序博客网 时间:2024/05/13 18:01
来自john resig
( function (argument) {var initialzing = false;var fnTest = /\b_super\b/;//this is window, and this statement let live Class in windowthis.Class = function (){};//create a new class that inherits this classClass.extend = function ( prop ) {var _super = this.prototype;initialzing = true;var prototype = new this();initialzing = false;for ( var name in prop ) {var haveSuper = typeof prop[ name ] == "function" && typeof _super[ name ] == "function" && fnTest.test( prop[ name ] )if ( haveSuper ) {prototype[ name ] = ( function ( name , fn ) {return function () {var tmp = this._super;this._super = _super[ name ];var ret = fn.apply( this , arguments );this._super = tmp;return ret;};} ) ( name , prop[ name ] );} else {prototype[ name ] = prop[ name ];}}function Class () {if ( !initialzing && this.init )this.init.apply( this , arguments );}Class.prototype = prototype;Class.prototype.constructor = Class;Class.extend = arguments.callee;return Class;};} )();var Person = Class.extend({ init: function(isDancing){ this.dancing = isDancing; }, dance: function(){ return this.dancing; }}); var Ninja = Person.extend({ init: function(){ this._super( false ); }, dance: function(){ return this._super(); }, swingSword: function(){ return true; }}); var p = new Person(true);p.dance(); // => true var n = new Ninja();n.dance(); // => falsen.swingSword(); // => true // Should all be truep instanceof Person && p instanceof Class && n instanceof Ninja && n instanceof Person && n instanceof Class
0 0
- 40行实现javascript继承
- [ JavaScript ] JavaScript 实现继承.
- 实现JavaScript的继承
- javascript 继承实现方法
- javascript 继承实现方式
- Javascript系列:实现继承
- javascript继承实现方法
- javascript 继承实现方法
- javascript 继承实现方法
- javascript 继承实现方法
- javascript 实现继承
- javascript实现继承
- javascript 继承实现方法
- javascript实现继承
- javascript 继承实现方式
- JavaScript继承的实现
- Javascript继承实现方式
- javascript【继承实现方式 】
- android textview设置字体的行距和字间距
- 齐豫追忆恩师李泰祥 演唱两种版本《橄榄树》
- CCBAnimationManager的使用:使用cocos2d-x程序控制,由cocosBuilder生成cbbi中的动画
- c++智能指针及其实现
- 如何更快更好地开拓玩家市场
- 40行实现javascript继承
- UIAlertView 的简单总结
- Lesson_for_java_day07--java中数组的定义及常见排序方法--冒泡法、简单选择法、直接插入法和调用方法排序
- 从零开始学android<日期选择器:DatePicker的使用.十二.>
- FPGA器件选型
- 二维OTSU算法快速实现
- 微软宣布.NET Native预览版 C#可编...[C#]
- c#与java中的byte
- HTTP协议——HyperText Transfer Protocol(超文本传输协议)