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.dir(per);
//打印构造函数
console.dir(Person)

我们创建的每一个函数都会有一个原型(prototype)属性,这个属性是一个指针,指向函数的原型(prototype)对象。使用原型对象可以让构造函数的实例对象共享原型对象包含的属性和方法,而不会像工厂模式或者构造函数模式那样,方法本应该是可以是通用的,可是每一个创建的对象实例都要各自复制一份

原文地址:https://www.cnblogs.com/nangezi/p/10176049.html

时间: 2024-11-07 18:17:14

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

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模拟实现继承,继承一次父类模板和原型对象

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

prototype和__proto__的关系是什么?

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法.(这个对象下面有个属性,这个属性是另外一个对象的应用 ,这个属性就是一个对象.) -  prototype 是显式原型,它是指向函数的原型对象.(函数创建之后就会产生prototype属性) funcition这个特殊的对象,除了和其他对象一样有_proto_属性之外,还有自己特有的属性——原型属性(prototype),这个属性是一个指针,指向一个对象,这个对象

JS面向对象篇二、什么是原型?原型对象与实例对象、构造函数的关系及相关方法

本文内容: 1.构造函数.原型对象与实例对象之间的关系: 2.isPrototypeOf()和Object.getPrototypeOf(); 3.实例对象上与原型对象上同名的属性处理: 4.hasOwnProperty()方法和in操作符判断属性来自实例对象本身还是它的原型对象: 5.for-in.Object.keys()和Object.getOwnPropertyNames()方法获取实例对象或者原型对象上的属性: 6.需注意的特殊问题 构造函数.原型对象与实例对象 function Pe

构造函数、原型对象、继承

构造函数 构造函数就是我们用new创建对象时调用的函数.到目前为止,我们已经学过好多内置的构造函数了,例如,Object,Array和Function.使用同一个构造函数创建的对象都具有相同的属性和方法.除了这些内置的构造函数外,我们也可以创建自己的构造函数. 构造函数也是函数,和普通函数的定义方式一样.唯一的区别是构造函数名的首字母应该大写,以此区分于其他函数.下面定义了一个空的Person函数. function Person() { } 定义好构造函数以后,你就可以用它来创建对象了,例如,

对象中prototype与__proto__与从cinstructor的作用和区别

首先先要知道prototype什么时间才会有 只有在创建函数的时候,每当函数创建的时候才会原型prototype,还有一个constructor,这个不是函数独有的,对象也有 下面就来说说对象prototype与__prototype的区别 首先用函数构造器实例化一个对象,注意这里实例化后的obj是没有prototype的, 但是obj有__proto__ 那么我们就来看看obj的__proto__与obj的constructor是什么 这里明显可以看出obj.__proto__指向的是构造器f

javascript面向对象系列第一篇——构造函数和原型对象

× 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数 构造函数是用new创建对象时调用的函数,与普通唯一的区别是构造函数名应该首字母大写 function Person(){ this.age = 30; } var person1 = new Person(); console.log(person1.ag

关于Javascript中通过实例对象修改原型对象属性值的问题

Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的说就1种,即Object类型.往细的说有:Object类型.Array类型.Date类型.Regexp类型.Function类型等. 当原型对象的属性值为基本类型的数据值时,通过实例对象修改属性值从而引起原型对象的属性值发生变化的情况不会发生.当原型对象的属性值为引用类型的数据值时,通过实例对象修改

javascript面向对象——构造函数和原型对象

一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数 构造函数是用new创建对象时调用的函数,与普通唯一的区别是构造函数名应该首字母大写 function Person(){ this.age = 30; } var person1 = new Person(); console.log(person1.age);//30 根据需要,构造函数可以接受参数 function