1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类: a 类方法 b 对象方法 c 原型方法 例子: functionPeople(name) { this.name=name; //对象方法 this.Introduce=function(){ alert("My name is "+this.name); } } //类方法 People.Run=function(){ alert("I can run"); } JavaScript中的原型(Prototype)是面向对象编程中的一个重要概念,它主要涉及到对象的创建、方法的继承和属性查找机制。在JavaScript中,每一个函数都是一个对象,而每一个对象都有一个内部属性`[[Prototype]]`,通常通过`prototype`属性来访问。这个属性允许我们在创建新对象时共享某些属性和方法,从而实现对象间的继承。 1. **原型法设计模式**: 原型模式是一种设计模式,用于创建具有相同属性和方法的新对象。在JavaScript中,我们可以通过`Object.create()`或设置`prototype`来实现原型继承。例如,创建一个新的类B,基于已有的类A作为原型,使得B能够扩展A的功能。在.NET中,可以使用`clone()`方法实现类似的功能。 2. **JavaScript方法分类**: - **类方法**:通常定义在构造函数(类)上,属于构造函数的静态方法,不依赖于任何实例,可以直接通过类名调用。 - **对象方法**:定义在对象实例上的方法,只存在于特定的对象实例中,通过实例来调用。 - **原型方法**:定义在构造函数的`prototype`对象上的方法,所有通过该构造函数创建的实例都可以共享这些方法。 3. **prototype属性**: `prototype`属性指向一个对象,这个对象的用途是为实例提供继承属性。当试图访问一个实例对象的属性时,如果在实例自身找不到,JavaScript会查找其`prototype`链,直到找到属性或到达`null`为止。 4. **原型链**: 当一个对象的某个属性不存在时,JavaScript会沿着`__proto__`链向上查找,这个链就是所谓的原型链。如果在`prototype`对象上找到了属性,就会使用该属性,如果没有,则继续向上查找。 5. **方法调用与覆盖**: 如果子类(派生类)的实例重写了父类(基类)的同名方法,那么在子类实例上调用该方法时,会优先执行子类的方法。如果需要调用父类的同名方法,可以使用`call()`或`apply()`方法,改变`this`上下文来调用父类的方法。 6. **`call()`方法**: `call()`方法允许我们改变函数调用时的上下文(`this`值),并可以传递参数。如示例所示,`baseinstance.showMsg.call(instance)`将`instance`作为`baseinstance.showMsg`方法的调用者,从而调用了父类的方法。 7. **继承与克隆**: 在JavaScript中,`prototype`的赋值是引用赋值,意味着当我们将一个对象赋值给另一个对象的`prototype`时,并不是复制对象,而是创建了一个引用。因此,修改其中一个对象会影响到其他引用该对象的所有对象。 总结,JavaScript中的原型机制提供了强大的继承和属性共享能力,通过`prototype`我们可以构建复杂的对象层次结构。了解和掌握原型以及相关方法,对于编写高效的JavaScript代码至关重要。在实际开发中,合理利用原型机制可以有效地复用代码,提高程序的可维护性和扩展性。
- 粉丝: 4
- 资源: 911
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 所有算法均用 Python 实现.zip
- redis-standalone.yml redis k8s单点部署
- Python基于Scrapy兼职招聘网站爬虫数据分析设计(源码)
- zipkin.yml zipkin k8s部署
- YY9706.102-2021医用电气设备第2-47部分
- 通过运用时间序列ARIMA模型与循环神经网络(LSTM)对中国包装机器数量进行预测(python源码)
- Ruby编程基础与进阶指南
- 基于ARIMA模型的股票预测(python源码)
- 基于阿里云对象存储的对文件进行批量修改、批量解冻、批量上传
- 山东联通-海信IP501H-GK6323V100C-1+8G-4.4.2-当贝桌面-卡刷包
评论0