JavaScript_构造函数/原型/实例对象的关系


1.所有的实例对象都有隐式原型属性。
2.每一个函数function都有一个prototype显示原型属性。
3.对象的隐式原型的值为其对应构造函数的显式原型的值。
4.函数的prototype属性: 在定义函数时自动添加的, 默认值是一个空Object对象。
5.对象的proto属性: 创建对象时自动添加的, 默认值为构造函数的prototype属性值。
6.function Foo{}等于var Foo = new Function()所以有隐式原型属性,即所有函数都有隐式和显示原型属性。
7.所有函数的隐式原型都相等,都是new Function产生的。
8.function Function()既有显示原型属性也具有隐式原型属性且相同,说明Function=new Function。
9.function Object()的隐式原型等于function Function的显示原型,进一步说明每个函数都是Function的实例(包括他本身)。
10.函数的显示原型指向的对象, 默认是空的Object实例对象,单Object不满足。
注:Function的显示原型也是Object的实例
11.Object原型对象是原型链的尽头,即null

function Fn(){
            this.test1 = function(){
                console.log(‘test1()‘);
            };
        }

        Fn.prototype.test2 = function(){
            console.log(‘test2()‘);
        };

        var fn = new Fn();

        console.log(Fn.prototype instanceof Object)//true
        console.log(Object.prototype instanceof Object)//false
        console.log(Function.prototype instanceof Object)//true
        console.log(Function.__proto__===Function.prototype)//true
        console.log(Object.prototype.__proto__)//null

原文地址:http://blog.51cto.com/ltzbk/2095318

时间: 2024-12-15 08:59:48

JavaScript_构造函数/原型/实例对象的关系的相关文章

构造函数和实例对象和原型对象之间的关系

构造函数可以实例化对象 构造函数中有一个属性叫prototype,是构造函数的原型对象. 构造函数的原型对象(prototype)中有一个constructor构造器.这个构造器指向的就是自己所在的原型对象所在的构造函数. 实例对象的原型对象(_proto_)指向的是该构造函数的原型对象. 构造函数的原型对象(prototype)中的方法是可以被实例对象直接访问的. 原文地址:https://www.cnblogs.com/Yanss/p/10332053.html

面向对象之构造函数、实例对象、原型

一.面向对象首先有一个需求,点击按钮改变div的样式.按照常规的思维来写,我们可能是先获取到目标元素,然后给目标元素添加事件,在事件中书写div需要改变的样式属性.如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text

js高级构造函数,实例对象和原型对象——prototype、__proto__和constructor构造器

一.前言 了解JavaScript面向对象,需要先了解三个名词: 构造函数,实例对象和原型对象. 注意:JavaScript中没有类(class)的概念,取而代之的是构造函数,两者类似却又有很大的差别. 先上代码,最常用的: function Person(name, age) { this.name = name; this.age = age; this.eat= function() { alert('吃西红柿') } } var person1 = new Person('小米', 28

javascript的构造函数和实例对象、prototype和__proto__的区别,原型对象及构造器的理解

一.前言 我们先通过代码来分别打印出实例对象.构造函数,以及修改了原型对象的构造函数,通过对比内部结构来看看他们之间的区别. //定义构造函数 function Person(name, age){ this.name = name; this.age = age; this.play = function(){ console.log('玩好玩的') } } //实例化对象,并初始化赋值 var per = new Person('kitty', '3'); //打印实例对象 console.

怎样在拿不到构造函数的情况下生成该构造函数的实例对象

需要使用Object.create()方法. function Person(name){ this.name = name; } var lilei = new Person("Lilei"); lilei.name; // "Lilei" var hanmeimei = Object.create(lilei); hanmeimei.name; // "Lilei"; lilei.name = "李雷"; hanmeime

JS面向对象-原型对象,实例对象,构造函数的关系

JS中每创建一个函数,该函数就会自动拥有一个prototype属性,为什么那??  因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对象都拥有一个prototype属性,而在js中函数也是对象,所以js中每个函数也都有一个prototype属性. 例如:function Person(){...} 和function Dog(){...} 而每一个prototype属性又会获得一个constructor属性 该constructo

浅析JS原型对象&amp;实例对象&amp;构造函数(转)

浅析原型对象,实例对象,构造函数的关系 原文地址:JS面向对象-原型对象,实例对象,构造函数的关系(http://blog.csdn.net/u014205965/article/details/45798861) 因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对象都拥有一个prototype属性,而在js中函数也是对象,所以js中每个函数也都有一个prototype属性. 例如:function Person(){...} 和

构造函数,原型对象,实例对象

一.构造函数,原型对象,实例对象 1.1 基本概念 1.对象: 属性和方法的集合,即变量和函数的封装. 调用构造函数产生的实例对象, 每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象. 2.构造器函数: 用于创建对象的函数,通过new关键字生成对象. 函数名一般首字母大写的. 每创建一个函数, 该函数都会自动带有一个prototype属性.该属性是一个指针,指向一个对象,该对象称之为原型对象(后期我们可以使用这个原型对象帮助我们在js中实现继承) 3.原型对象: 默认有一

浅谈系列之 javascript原型与对象

在我学习与使用javascript三个月中,我一直对javascript的继承关系以及prototype理解不清,导致很多时候为什么这么用说不出个所以然来.截止到本周为止,通过之前的学习以及自己的再学习,自我感觉算是对这一块有了较为清晰的认识,此文将谈谈我对javascript原型与继承的理解,在此之前,我们首先要知道一些基本的知识. 知识铺垫 1.数据类型 JavaScript中的数据类型在曾经我也有提到过,它包括未定义值(undefined),空值(null),布尔值(boolean),数字