`
y1d2y3xyz
  • 浏览: 257030 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Javascript之prototype 原型重写

阅读更多
function Person(){}

var person = new Person();

Person.prototype={//重写Person原型
	name:'zhangsan',
	sayHi:function(){
		alert("重写原型")	
	}
}

//person.sayHi();这里会报错

function Person1(){}

var person1 = new Person1();

Person1.prototype.sayHi = function(){
	alert("hello prototype")	
}

person1.sayHi();//这里能正常执行


由于javascript本身的原型和实例之间松散关系,在Person对象中先实例化了对象,接着重写了Person的原型,就是因为这里的重写导致了现有的原型和之前实例对象之间关系被切断,而Person1则不一样,没有对原型进行重写,而只是在Person1原型上添加的方法和属性,所有区别就在此,所以Person1.sayHi()的执行显然没问题
分享到:
评论

相关推荐

    javascript prototype原型操作笔记.docx

    ### JavaScript Prototype原型操作知识点 #### 一、Prototype基础概念 **Prototype** 在 JavaScript 中是一个非常重要的概念,它支持面向对象编程中的继承特性。每个 JavaScript 对象都有一个内部属性 `[...

    原型设计模式prototype

    **原型设计模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过构造函数来实例化新对象。在面向对象编程中,当我们需要频繁地创建具有相同或相似属性的对象时,...

    关于javascript原型的修改与重写(覆盖)差别详解

    在JavaScript中,原型(prototype)是面向对象编程的一个核心概念,它允许对象共享属性和方法。原型的修改与重写是两个经常被混淆的概念,它们之间存在显著的差异,并且对对象行为有着不同的影响。本文将详细解析...

    浅析javascript原型继承机制

    因为一旦`Hoozit.prototype`被重写,之前添加的属性和方法都会丢失。 - `new Gizmo()`创建了一个新的`Gizmo`实例,并将其赋值给`Hoozit.prototype`。这意味着`Hoozit`的每个实例都将共享同一个`Gizmo`实例的属性和...

    详解JavaScript中基于原型prototype的继承特性

    这是一种更加高效的继承方式,它避免了在创建子类原型时重写原型链的问题,减少了对性能的影响。 通过原型链实现继承,是JavaScript特有的方式。尽管其行为与传统的基于类的继承有所不同,但原型链继承为JavaScript...

    js高端系列教程(26)——JavaScript探秘:强大的原型和原型链.docx

    在JavaScript中,原型和原型链的概念至关重要,它们是理解面向对象编程的基础之一。本文将深入探讨这些概念,并通过具体的代码示例来解释如何利用原型和原型链实现类的继承、封装等特性。 #### 原型对象的基本概念 ...

    分析javascript原型及原型链

    在JavaScript中,原型(Prototype)和原型链(Prototype Chain)是核心概念之一,它们是实现继承的关键,对于理解JavaScript的面向对象编程至关重要。 一、原型对象的理解 当我们用JavaScript创建一个函数时,这个...

    JS中的prototype

    通过理解`prototype`以及与之相关的概念,如原型链、方法重写和`call()`,开发者可以更有效地利用JavaScript的面向对象特性,实现复杂的继承和扩展。在实际开发中,熟练掌握这些知识对于编写可维护和高效的代码至关...

    prototype手册

    在JavaScript中,原型(Prototype)是实现对象继承的一种方式,它基于原型链的概念,是JavaScript的核心特性之一。本手册深入探讨了如何使用和理解JavaScript中的原型机制。 ### 一、原型与原型链 1. **对象的原型**...

    Prototype Doc

    JavaScript中的原型(Prototype)是理解其面向对象编程的关键概念之一。在JavaScript中,对象可以通过原型链相互关联,这种机制使得对象能共享属性和方法,从而实现继承。本文档"Prototype Doc"深入探讨了这一主题,...

    js使用原型对象(prototype)需要注意的地方

    我们先来一个简单的构造函数+原型对象的小程序 function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } CreateObj.prototype.showUserName = function () { return this....

    Javascript之深入浅出prototype

    3. **对象字面量重写原型链**:当使用对象字面量重新赋值`person.prototype`时,会切断原有的原型链并创建新的链。这意味着之前在`person.prototype`上的任何属性和方法都会被新的对象字面量替换掉,除非在新对象中...

    prototype+开发笔记

    当尝试访问实例的一个属性时,如果在实例本身找不到,JavaScript会向上搜索到其构造函数的`prototype`,直至找到为止,这就是原型链。 `prototype.js`文件可能包含了实现和利用`Prototype`进行对象扩展和继承的代码...

    Javascript(OOP).rar_javascript_javascript O_oop javascript

    在JavaScript中,这通常通过重写或覆盖原型链上的方法实现。例如,两个不同类型的对象都可以有一个`sayHello`方法,但各自的实现可能不同。 总的来说,JavaScript的面向对象编程提供了丰富的工具和技巧,让开发者...

    《JavaScript内核系列》和《JavaScript面向对象基础》

    JavaScript的面向对象编程主要基于原型(prototype)、构造函数和实例化。 1. 原型:JavaScript中的对象都有一个内置的__proto__属性,指向其构造函数的原型对象。通过原型链,对象可以继承其他对象的属性和方法。 ...

    详解Javascript中的原型OOP

    JavaScript中的原型(Prototype)是实现面向对象编程的关键机制。在JavaScript中,每个函数都是一个对象,函数对象有一个特殊的属性——`prototype`,它是用来创建对象实例的模板。当我们创建一个函数,其实就是在定义...

    JavaScript prototype属性使用说明

    - prototype方法是原型链继承的关键,也是JavaScript实现面向对象编程的核心机制之一。 prototype属性是JavaScript中非常强大的特性,它提供了一种简洁有效的方式来扩展和自定义对象的行为。了解和掌握prototype的...

    Javascript 面向对象的JavaScript进阶

    尽管JavaScript没有传统意义上的类继承(如Java),但它支持基于原型的继承。通过`__proto__`链或`Object.setPrototypeOf()`方法,子类可以访问和重写父类的方法。 **示例代码:** ```javascript function Animal...

    javascript控件开发之继承关系

    在JavaScript中,继承是基于原型(prototype)的机制。每个JavaScript对象都有一个内部[[Prototype]]链接到另一个对象,这通常是其构造函数的prototype属性。通过这种方式,一个对象可以“继承”另一个对象的属性和...

Global site tag (gtag.js) - Google Analytics