Javascript 继承机制和构造方法链实现
首先是我们熟悉的extend函数
/**
* 扩展函数
* @param target 扩展对象
* @param params 扩展参数
*/
function extend(target, params) {
if (!target) {
target = {};
}
for (var prop in params) {
target[prop] = params[prop];
}
return target;
}
接下来继承函数
/**
* 继承函数
* @param SuperClass 父类
* @param overrides 重写方法
*/
function extendClass(SuperClass, overrides) {
var SubClass = function() {
// 自动调用构造函数
this.initialize.apply(this, arguments);
};
SubClass.prototype = new SuperClass();
extend(SubClass.prototype, overrides);
SubClass.superclass = SuperClass;
return SubClass;
}
测试代码
var Animal = extendClass(Object, {
initialize: function(name){
this.name = name;
},
showName: function(){
alert(this.name);
}
});
var Cat = extendClass(Animal, {
initialize: function(name) {
// 调用父类构造函数
Cat.superclass.prototype.initialize.call(this, name);
}
});
var BlackCat = extendClass(Cat, {
initialize: function(name, type) {
// 调用父类构造函数
BlackCat.superclass.prototype.initialize.call(this, name);
this.type = type;
},
showType: function() {
alert(this.type);
},
showName: function() {
alert(this.name + ":" + this.type);
}
});
var cat = new Cat("cat name");
// 继承方法
cat.showName();
// true
alert(cat instanceof Animal);
// true
alert(cat instanceof Cat);
// false
alert(cat instanceof BlackCat);
var blackCat = new BlackCat("123", "black");
// 方法重写
blackCat.showName();
// 自有方法
blackCat.showType();
// true
alert(blackCat i
相关文档:
JavaScript进行GET和POST请求
Web上最常见的请求就是GET请求.每次在浏览器中输入URL并打开也米纳市,就是在向服务器发送一个GET请求.
GET请求:
GET请求的参数使用问号追加到URL的结尾,后米纳给这用&好连接起来的名称/值.例如:
http://www.somewhere.com/page.php?name1=value1&name2=value2&name3=value3
......
JavaScript常用验证函数
引自:http://www.webdeveloping.cn/blog/?action=show&id=209
//校验是否全由数字组成
function isDigit(s) {
var patrn=/^[0-9]{1,20}$/;
i ......
function getCookies(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return '';
}
function setCookie(name, value, expires, path, domain, secure)
{
var liveDate = new Date();
expires = l ......
Evaluates an expression after a specified number of milliseconds has elapsed.
(在指定时间过后执行指定的表达式)
Syntax:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
Parameters
vCode
Required. Variant that specifies the function pointer or string that indicates the code to be ......