`
三月沙
  • 浏览: 619477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 理解对象原型(一)

阅读更多

 

            //------------------------------------------------------------------
            //1.javascript对象创建的时候,构造函数会创建该对象的原型,对象会继承原
            //型的所有方法和属性,即每个对象都连接到一个原型对象.
            //
            //2.所有通过字面量创建的对象都连接到Object.prototype这个标准的对象.
            //
            //3.当你创建某个对象时,你可以选择使用某个对象作为他的原型
            //
            //下面创建了一个可以是对象在创建时选择自己的原型
            //------------------------------------------------------------------
            var stooge={
                first_name:'Hanks',
                last_name:'tom'
            }
            if(typeof Object.beget!=='function')
            {
                Object.beget = function(o)
                {
                    var F = function(){
                        this.constructor = arguments.callee
                        
                    };
                    F.prototype = o;
                    return new F();
                }
            }
        
            //创建了另一个对象,使用stooges作为原型
            var another_stooge = Object.beget(stooge);
            
            //查看对象的值
            alert(another_stooge.first_name);//output:Hanks
                
            //现在更改原型
            stooge.first_name='Jack';
            //查看原型的值
            alert(stooge.first_name); //output:Jack
            //查看对象的值
            alert(another_stooge.first_name);//output:Jack
                 
            //现在更改对象
            another_stooge.first_name='Michel';
            //查看对象的值
            alert(another_stooge.first_name);//output:Michel
            //查看原型的值
            alert(stooge.first_name);//output:Jack
            //通过继承对象访问原型上的值
            alert(another_stooge.constructor.prototype.first_name);
               
            //对原型添加新的属性
            stooge.middle_name='MoJce';
            //查看对象的值
            alert(another_stooge.middle_name);//output:MoJce
             
            //----------------------------------------------------------------
            //结论:对继承对象的更改并不会反应到原型上去,即更新不
            //会影响原型连接上的值
            //如果某个新的属性被添加到原型中,就会立刻反应到所有使用该原型创造的
            //对象中
            //----------------------------------------------------------------

            //----------------------------------------------------------------
            //属性检测,typeof检测手段可以检测到从原型上继承过来的属性,
            //但hasOwnProperty却忽视了原型上的属性,只检测本对象拥有的
            //属性
            //----------------------------------------------------------------
            alert(typeof flight01.number); //output:number
            alert(typeof stooge.first_name);//output:string
            alert(typeof another_stooge.first_name);//output:string
            alert(flight01.hasOwnProperty('number'));//output:true
            alert(another_stooge.hasOwnProperty('first_name'));//output:false
0
0
分享到:
评论

相关推荐

    深入理解javascript原型和闭包

    深入理解javascript原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系

    JavaScript 面向对象与原型

    - JavaScript中的继承是通过原型实现的,一个对象可以指向另一个对象作为其原型,从而继承其属性和方法。 - `Object.create()`方法可以创建一个新对象,使其`__proto__`指向指定的对象,实现继承。 8. 原型和构造...

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

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

    浅析JavaScript实现基于原型对象的“继承”.pdf

    通过对JavaScript的原型继承机制的介绍和实例分析,提出一个改进的“寄生组合模式”,使读者能够更好地理解和应用JavaScript的原型继承。 概述 JavaScript是一门面向Web的编程语言,具有高端、动态以及面向对象的...

    理解Javascript原型继承原理

    在JavaScript中,原型继承是一种非常核心且独特的机制,它使得对象能够继承其他对象的属性和方法。本文旨在深入探讨这一机制,并通过具体的示例代码帮助读者更好地理解其中的概念。 #### 二、基本概念 在JavaScript...

    Javascript面向对象编程.

    2. **原型(Prototype)**:JavaScript中的每个对象都有一个内置的`__proto__`属性,指向其构造函数的原型对象。原型对象可以包含共享的方法和属性,使得实例可以访问。我们也可以通过`prototype`属性来修改构造函数...

    JavaScript中的原型和继承详解(图文)_.docx

    在 JavaScript 中,原型对象可以形成一个链式结构,即一个对象的原型对象可以有自己的原型对象,以此类推。这使得对象可以继承多个原型对象的方法和属性。 五、继承 在 JavaScript 中,继承是通过原型链来实现的。...

    JavaScript原型链

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

    学习javascript面向对象 理解javascript原型和原型链

    在深入理解JavaScript面向对象编程时,了解其原型和原型链的概念至关重要。本文将详细解释这些概念以及它们如何工作,帮助初学者构建扎实的基础。 首先,原型链是JavaScript中实现继承的一种机制。在JavaScript中,...

    JavaScript面向对象编程指南.pdf

    3. prototype:在JavaScript中,每个函数都有一个prototype属性,这个属性指向一个对象,这个对象称为原型对象。原型对象允许我们定义共享的属性和方法,这样所有通过该构造函数创建的对象都可以访问这些属性和方法...

    面向对象JavaScript精要(英文原版pdf)

    每个对象都有一个内部属性[[Prototype]],指向其原型对象。当尝试访问一个对象的属性时,如果该对象自身没有这个属性,则会沿着原型链向上查找,直到找到该属性为止。 - **构造函数**:构造函数是一种特殊的函数,...

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

    理解函数的原型链和闭包对于深入掌握JavaScript至关重要。 首先,让我们看看函数的定义方式。在JavaScript中,我们可以使用`function`关键字直接定义函数,如`function fn(a, b) {}`。此外,函数也可以通过赋值语句...

    我所理解的从原型到原型链.pdf

    这两个概念是语言的核心部分,对于深入理解对象的属性查找机制、继承等方面有着不可替代的作用。 #### 原型(Prototype) 在JavaScript中,每个函数都有一个`prototype`属性,这个属性指向一个对象。当我们创建一...

    javascript创建对象的方式(二)

    JavaScript的对象都有一个内置的`__proto__`属性,指向创建该对象的构造函数的原型。我们可以通过原型来添加或修改对象的方法和属性。例如: ```javascript Person.prototype.sayHello = function() { console....

    JavaScript面向对象编程指南(第2版).rar

    本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好地理解和应用这一编程范式。 JavaScript的面向对象主要基于三个核心概念:封装、继承和多态。封装是将数据和操作这些数据的方法结合在一起,...

    深入理解javascript原型和闭包1

    JavaScript的继承是通过原型链实现的,一个对象可以继承另一个对象的属性和方法。通过设置`prototype`,我们可以让一个函数(即构造函数)的实例继承另一个函数的实例的属性和方法。 (7)——原型的灵活性 ...

    js 原型对象和原型链理解

    JavaScript中的原型对象和原型链是理解面向对象编程的关键概念。原型对象(Prototype)主要用于实现对象间的继承,而原型链(Prototype Chain)则是JavaScript查找对象属性和方法的机制。 首先,每个函数都有一个`...

    JavaScript 面向对象编程详细讲解文档

    首先,让我们深入理解对象。在JavaScript中,一切皆为对象,包括函数。你可以直接通过对象字面量或者构造函数来创建对象。对象的属性和方法可以直接定义在对象实例上,也可以通过原型链来访问。原型(prototype)是...

Global site tag (gtag.js) - Google Analytics