标签:实现继承 浏览器 var 字符串 script bsp 兼容 doc creat
//经典继承:已知一个对象obj,现在要创建另外一个对象newObj,对象newObj要继承obj的所有方法和属性//分析:1.newObj.__proto__=obj 2.创建对象除了字面量的方式就是使用构造函数的方式function create(){functionFun(){};Fun.prototype=obj;returnnewFun();}//ES5中Object.create(obj) (IE9版本以上才支持)//封装一个方法兼容个版本浏览器都能执行Object.create的方法if(typeofObject.create !==‘function‘){//判断当前浏览器是否有create这个方法Object.create=function(obj){//如果没有这个方法的话就添加一个这个方法functionFun(){};Fun.prototype=obj;returnnewFun();}}//数组对象var numbers=[1,3,5]; cnosole.log(numbers.__proto__);//Array.prototype console.log(numbers.constructor);//Array.prototype.constructor——>Array console.log(Array.prototype.__proto__);//Object.prototypevar reg=/[0-8]/; console.log(reg.constructor);//RegExp console.log(reg.__proto__.__proto__);//Object.prototype console.log(reg.__proto__.constructor);//RegExpvar str=newString("abc"); console.log(str.__proto__.__proto__);//Object.prototype console.log(str.constructor);//Stringvar isMan=newBoolean(true); console.log(isMan.__proto__);//Boolean.prototypevar number=newNumber(100); console.log(number.__proto__.__proto__);//Object.prototype//规律:一般来说,无论是对象字面量,还是构造函数创建的对象、内置对象,基本包装了类型的对象,2次原型查找(.__proto__)就可以找到Object.prototypefunctionStudent(){}var s1=newStudent(); console.log(s1.__proto__.__proto__);//Object.prototype// jQuery.fn==jQuery.prototype jQuery.fn.extend=function(obj){for(var key in obj){ jQuery.fn[key]=obj[key];}return jQuery.fn;};

标签:实现继承 浏览器 var 字符串 script bsp 兼容 doc creat
原文地址:http://www.cnblogs.com/itlyh/p/6012101.html