js 继承相关


//inherit() 返回了一个继承自原型对象P的属性的新对象
//这里使用ECMAScript 5中的object.create()函数
//如果不存在,使用其它方法
function inherit(p){
    if( p == null ) throw TypeError();
    if( Object.create ) return Object.create( p );
    
    var t = typeof p;
    if( t !== "object" && t != "function" ){
        throw TypeError();
    }
    
    function f(){};
    f.prototype = p;
    
    return new f();
}

//定义一个扩展函数,用来将第二个以及后续参数复制至第一个参数
//这里我们处理了IE BUG:在多数ID版本中
//如果O的属性拥有一个不可枚举的同名属性,则FOR/IN循环
//不会枚举对象o的可枚举属性,也就是说,将不会正确地处理诸如toString的属性
//除非我们显式检测它
var extend = (function(){

    for( var p in {toString:null}){
        return function extend(o){
            for( var i=1; i

 

转载于:https://my.oschina.net/u/157383/blog/901714

你可能感兴趣的:(javascript)