`

Javascript中类的定义及原型

阅读更多
ClassA=function(){
this.a='a';
this.b='b';
this.method=function(){
       alert(1)
   }

}

ClassA.prototype.method=function(){

alert(2)

}

var a=new ClassA();

a.method();

   这时候会alert(1) 还是alert(2)呢??答案是alert(1)

 

   JS中的方法会首先在实例中查找方法method,如果没有在父类中查找,如果没有在原型中查找。

 

   我们定义JS的类时,往往在构造函数中定义属性,而在原型中定义方法,这样保证每个实例内存中都只有一个方法的引用。所以一般不会按照alert(1)的方式定义方法。

分享到:
评论

相关推荐

    JavaScript中定义对象原型的两种使用方法

    无论使用哪种方式定义原型,它们都参与了JavaScript的原型链。当试图访问一个对象的属性时,JavaScript会首先查找该对象自身的属性,如果没有找到,就会向上查找其构造函数的`prototype`,如此递归,直到找到属性或...

    JavaScript原型链

    JavaScript原型链是JavaScript语言中的一个核心特性,它关乎对象之间的继承关系。在JavaScript中,一切皆为对象,而原型链则是实现对象间属性和方法共享的一种机制。理解原型链对于深入学习JavaScript至关重要。 ...

    JavaScript程序设计课件:原型与继承.pptx

    当访问某个对象中的一个不存在的属性或方法时,会自动调用原型中的属性和方法。也就是说,基于原型创建的对象会自动拥有原型的属性和方法。 之前我们学过构造函数,通过构造函数也可以使两个对象具有相同的属性和...

    JavaScript定义类的几种方式总结

    JavaScript定义类的几种方式包括工厂方式、构造函数和原型方式,每种方法都有其特点和适用场景,接下来我们将详细探讨。 工厂方式是最早期的面向对象编程在JavaScript中的实践之一。使用工厂方式定义类,本质上就是...

    javascript 原型模式实现OOP的再研究

    JavaScript中的原型模式是一种实现面向对象编程(OOP)的关键机制,它基于原型继承,使得对象可以从其他对象那里获得属性和方法。在这个模式下,每个函数都有一个`prototype`属性,这个属性是一个对象,用于共享属性...

    探索JavaScript的原型链:原型继承的奥秘

    - **构造函数**:利用构造函数创建对象,并定义原型方法。 ```javascript function Person(name) { this.name = name; } Person.prototype.greet = function() { console.log(`Hello, my name is ${this.name}!...

    第15章 javascript面向对象与原型

    总的来说,JavaScript中的面向对象编程与传统的基于类的OOP有所不同,它通过原型链和构造函数来实现对象的创建和继承。正确理解并运用这些概念,可以让开发者更有效地利用JavaScript进行面向对象的编程。

    深度探讨javascript函数的原型链和闭包

    在JavaScript中,我们可以使用`function`关键字直接定义函数,如`function fn(a, b) {}`。此外,函数也可以通过赋值语句声明,例如`var fn = function(a, b) {}`。函数还可以作为对象的属性,如`var obj = {};obj.fn...

    深入理解javascript原型和闭包.pdf

    JavaScript原型和闭包是这门语言中两个比较难以理解且与其他面向对象语言区别较大的概念。理解这两个概念,不仅能让我们更深层次地理解JavaScript,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,...

    JavaScript定义类或函数的几种方式小结

    原型方式是JavaScript中定义类的一种更接近传统面向对象语言的方式。每个对象都会有一个原型对象,对象通过原型继承属性和方法。我们可以向构造函数的原型对象添加方法或属性,以实现方法的共享。原型方式的代码示例...

    javaScript中的原型解析_.docx

    在JavaScript中,由于没有像Java那样的类概念,因此继承机制是基于原型(prototype)实现的。每个函数都有一个名为`prototype`的属性,它实际上是一个指针,指向该函数的原型对象。这个原型对象具有一个默认属性`...

    JavaScript你一定要搞懂的原型链

    在 JavaScript 中,每个对象都有一个原型 (prototype),它定义了对象的属性和方法。对象可以通过原型链访问到其原型的属性和方法。 原型链图将对象及其原型表示为节点,并使用箭头表示原型关系。每个节点表示一个...

    JS类中定义原型方法的两种实现的区别

    ### JS类中定义原型方法的两种实现的区别 #### 引言 在JavaScript中,通过类的形式定义对象是一种常见的做法。为了扩展类的功能或为类添加新的行为,开发者常常需要向类的原型(`prototype`)添加方法。在...

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

    JavaScript中没有传统意义上的类继承机制,而是通过原型链来实现继承。下面的代码展示了如何让`Calculator`继承`BaseCalculator`的功能: ```javascript var BaseCalculator = function () { this.decimalDigits =...

    图文详解JavaScript的原型对象及原型链

    JavaScript的原型对象和原型链是理解JavaScript继承机制的关键概念。首先,我们来区分两个关键的属性:`prototype`...通过清晰地描绘出原型链,可以帮助我们更好地掌握JavaScript的继承机制,并解决实际编程中的问题。

    javascript中的类理解

    在 JavaScript 中,类的概念是在 ECMAScript 6(ES6)版本引入的,之前 JavaScript 使用构造函数和原型链来实现面向对象编程。下面我们将深入探讨 JavaScript 中的类。 1. **类的定义** 在 JavaScript 中,类的...

Global site tag (gtag.js) - Google Analytics