摘要:一伪类当一个函数对象被创建时,构造器产生的函数对象会运行类似这样的代码新函数对象被赋予了一个属性,他的值是一个包含属性且属性值为该新函数的对象。这个对象是存放继承特征的地方。
一、伪类
当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样的代码:
this.prototype = { constructor: this};
新函数对象被赋予了一个prototype属性,他的值是一个包含constructor属性且属性值为该新函数的对象。这个prototype对象是存放继承特征的地方。
Function.method("new",function(){ //创建一个新对象,它继承自构造函数的原型对象 var that = Object.create(this.prototype); // 调用构造函数,绑定-this-到新对象上 var other = this.apply(that,arguments); //如果返回值不是一个对象,就返回该新对象 return (typeof other ==="object"&&other)||that; })
我们定义一个构造器来扩充它的原型
var Mammal = function(name){ this.name=name; }; Mammal.prototype.get_name = function(){ return this.name; }; Mammal.prototype.says = function(){ return this.saying || ""; }
现在我们构造一个实例
var myMammal = new Mammal("hello world!"); var name = myMammal.get_name();
我们构造一个伪类来继承Mammal,通过定义它的constructor函数并替换他的prototype为一个Mamma
var Cat = function(name){ this.name =name; this.saying= "meow"; }
替换Cat.prototype为一个新的Mammal实例
Cat.prototype =new Mammal();
扩充新原型对象增加get_name方法
Cat.prototype.get_name = function(){ return this.says()+""+this.name+""+this.says(); }; var myCat =new Cat("wsm"); var says = myCat.says(); var name= myCat.get_name();二、原型
构造一个有用的对象开始,接着可以构造更多和那个对象类似的对象。
Object.create方法构造更多的实例三、函数化
运用模块模式的继承模式去保护隐私。
1、创建一个新对象,可以通过构造一个对象字面量或者和new浅醉连用去调用一个构造函数,或者使用Object.create构造一个已经存在的对象的新实例,或者调用任意一个会韩慧一个对象的函数
2、有选择的定义私有实例变量和方法。
3、给这个新对象扩充方法。
4、返回那个新对象
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107680.html
摘要:深入之继承的多种方式和优缺点深入系列第十五篇,讲解各种继承方式和优缺点。对于解释型语言例如来说,通过词法分析语法分析语法树,就可以开始解释执行了。 JavaScript深入之继承的多种方式和优缺点 JavaScript深入系列第十五篇,讲解JavaScript各种继承方式和优缺点。 写在前面 本文讲解JavaScript各种继承方式和优缺点。 但是注意: 这篇文章更像是笔记,哎,再让我...
摘要:前提中闭包无处不在,你只需要能够识别并拥有它。一实质问题当函数可以记住并访问所在的词法作用域是,就产生了闭包。依然持有该作用域的引用。延迟函数的回调会在循环结束时才执行。每个延迟函数都会讲在每次迭代中创建的作用域封闭起来。 前提:JavaScript中闭包无处不在,你只需要能够识别并拥有它。闭包是基于词法作用域书写代码时自然产生的结果。 一、实质问题 当函数可以记住并访问所在的词法作用...
摘要:继承继承子类可以使用父类的所有功能,并且对这些功能进行扩展。类继承父类父类添加共有方法子类继承父类子类添加共有方法其中最核心的一句代码是将原型指向了父类的原型对象。 继承 继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。 类继承 // 父类 var supperClass = function() { var id = 1; thi...
阅读 2909·2021-10-19 10:09
阅读 3127·2021-10-09 09:41
阅读 3373·2021-09-26 09:47
阅读 2690·2019-08-30 15:56
阅读 592·2019-08-29 17:04
阅读 980·2019-08-26 11:58
阅读 2506·2019-08-26 11:51
阅读 3354·2019-08-26 11:29