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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 动手学深度学习,沐神版配套代码,所有代码均可在jupyter中运行,内附有极为详尽的代码注释
- qaxbrowser-1.1.32574.52.exe (奇安信浏览器windows安装包)
- C#编写modbus tcp客户端读取modbus tcp服务器数据
- 某房地产瑞六补环境部分代码
- 基于Matlab实现无刷直流电机仿真(模型+说明文档).rar
- AllSort(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序)
- 模拟qsort,改造冒泡排序使其能排序任意数据类型,即日常练习
- carsim+simulink联合仿真实现变道 包含路径规划算法+mpc轨迹跟踪算法 可选simulink版本和c++版本算法 可以适用于弯道道路,弯道车道保持,弯道变道 carsim内规划轨迹可视化
- 数组经典习题之顺序排序和二分查找和冒泡排序
- 永磁同步电机神经网络自抗扰控制,附带编程涉及到的公式文档,方便理解,模型顺利运行,效果好,位置电流双闭环采用二阶自抗扰控制,永磁同步电机三闭环控制,神经网络控制,自抗扰中状态扩张观测器与神经网络结合
评论0