javascript框架之继承机制2
我们来模仿一下最OO的mootools的继承机制。它的类都有一个叫做initialize构造方法,这与Java的类都有一个与类名同名的构造方法一样的道理。只不过,这些叫initialize或init都是借鉴自Prototype,而Prototype那帮人是Ruby出身。为了区别mootools那种污染原生方法的做法,我把类的构造器命名为variant,并且禁止查看构造方法(像浏览器禁止查看原生对象的构造方法那样)。
var variant = function (options){
options = options || {};
var initialize = options.initialize || function(){};
var klass = initialize ;
klass.constructor = arguments.callee;
klass.prototype.constructor = klass;
klass.toString = function(){//禁止查看构造方法
return "function variant(){\n [variant code]\n}"
}
return klass;
};
var Person = variant({initialize:function(age){
this.age = age;
}});
alert(Person)//看不到构造方法的实现
var p = new Person(3);
alert(p)
alert(p.age);
alert(p.constructor);//看不到构造方法的实现
var P = variant({})
var a = new P;
alert(a);
运行代码
var variant = function (options){
options = options || {};
var initialize = options.initialize || function(){};
var klass = initialize ;
klass.constructor = arguments.callee;
klass.prototype.constructor = klass;
klass.toString = fu
相关文档:
<script language="javascript">
var timeLen = "0";
var timer = null;
function beginTimer()
{
var hour="0";
var minute="0";
var second="0";
timeLen = parseInt(timeLen)+1;
hour = parseInt(timeLen/3600) ;
minute = parseInt((timeLen-( ......
在JavaScript中字符串是用引号“" "”、“' '”包起来的零个至多个字符。用哪个引号开始就用哪个结束,而且单双引号可嵌套使用,不过JavaScript 中引号的嵌套只能有一层。如果想再多嵌一些,需要用转义字符:
转义字符 由于一些字符在屏幕上不能显示,或者 JavaScript 语法上已经有了特殊用途, ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false&quo ......