首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构造函数原型原型链、继承

每个对象都有一个__proto__属性,该属性是一个对象,被称为原型对象,原型对象有一个constructor属性,指向创建对象的那个函数(obj.constructor === obj....__proto__.split; //true 每个函数只要被创建就会有一个prototype属性,它的值就是原型对象(所以访问原型对象有两条途径:函数的prototype、实例对象的__proto_...this.nation){ Person.prototype.nation = 'Chinese' }; }; 原型函数被创建后prototype指向了默认的原型对象,如果使用new调用该函数来生成一个对象...实际上,由于原型对象B是由Object()函数创建的,而Object()函数的prototype的__proto指向的是null,所以一条原型链的起点是实例对象,终点是null,中间由__proto__...总之利用原型链实现可靠继承的步骤是: 在父类函数内设置通用的属性 在子类函数内调用父类函数,并设置特有的属性 修改子类函数的prototype,以继承父类 修改子类函数的prototype.constructor

76520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    构造函数原型

    1.4构造函数原型prototype 1.构造函数通过原型分配的函数是所有对象所共享的。 2.JavaScript 规定,每一个构造函数都有一个prototype 属性,指向另一个对象。...对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在...如果有多个对象的方法,我们可以给原型对象采取对象形式赋值,但是这样就会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构造函数了。...1.7原型链 每一个实例对象又有一个proto属性,指向的构造函数原型对象,构造函数原型对象也是一个对象,也有proto属性,这样一层一层往上找就形成了原型链。 ?...1.8构造函数实例和原型对象三角关系 1.构造函数的prototype属性指向了构造函数原型对象 2.实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数原型对象 3.构造函数原型对象的

    35810

    构造函数原型

    4.构造函数原型prototype(原型对象) 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript 规定,每一个构造函数都有一个prototype 属性,指向另一个对象。...constructor 主要用于记录该对象引用于哪个构造函数,它可以让原型对象重新指向原来的构造函数。 一般情况下,对象的方法都在构造函数原型对象中设置。...如果有多个对象的方法,我们可以给原型对象采取对象形式赋值, 但是这样就会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构造函数了。...构造函数实例和原型对象三角关系 1.构造函数的prototype属性指向了构造函数原型对象 2.实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数原型对象 3.构造函数原型对象的...8.原型链 每一个实例对象又有一个__proto__属性,指向的构造函数原型对象,构造函数原型对象也是一个对象,也有__proto__属性,这样一层一层往上找就形成了原型链。 ?

    48250

    基础 | 详解面向对象、构造函数原型原型

    ; b)将该中间对象的原型指向构造函数原型; c)将构造函数的this,指向该中间对象; d)返回该中间对象,即返回实例对象。...通过图示我们可以看出,构造函数的prototype与所有实例对象的__proto__都指向原型对象。而原型对象的constructor指向构造函数。...在这个例子中,我们同时在原型与构造函数中都声明了一个getName函数,运行代码的结果表示原型中的访问并没有被访问。...先随意声明一个函数: 那么我们可以用如下的图来表示这个函数原型链。 其中foo是Function对象的实例。而Function的原型对象同时又是Object的实例。这样就构成了一条原型链。...因为构造函数原型的不同特性,分别解决了我们不同的困扰。因此当我们想要实现继承时,就必须得根据构造函数原型的不同而采取不同的策略。

    41210

    JS高级——构造函数原型

    构造函数原型prototype 构造函数通过原型分配的函数是所有对象所共享的。...共享方法 对象原型 proto 对象都会有一个属性 __proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有 __...constructor 构造函数 对象原型(__proto__)和构造函数(prototype)原型对象里面都有一个属性 constructor属性,constructor我们称为构造函数,因为它指回构造函数本身...一般情况下,对象的方法都在构造函数原型对象中设置,如果有多个对象的方法,我们可以给原型对象采取对象形式赋值,但是这样就会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构造函数了...一般情况下,对象的方法都在构造函数原型对象中设置,通过构造函数无法继承父类方法。

    1.5K10

    「JS高级」构造函数原型

    console.log(ldh.sing === zxy.sing); //返回 false 1.4构造函数原型prototype 构造函数通过原型分配的函数是所有对象所共享的。...constructor 主要用于记录该对象引用于哪个构造函数,它可以让原型对象重新指向原来的构造函数。 一般情况下,对象的方法都在构造函数原型对象中设置。...如果有多个对象的方法,我们可以给原型对象采取对象形式赋值,但是这样就会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构造函数了。...每一个实例对象又有一个__proto__属性,指向的构造函数原型对象,构造函数原型对象也是一个对象,也有__proto__属性,这样一层一层往上找就形成了原型链。...1.8构造函数实例和原型对象三角关系 构造函数的prototype属性指向了构造函数原型对象; 实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数原型对象; 构造函数原型对象的

    1.5K50

    6.3 被调用函数的声明和函数原型

    一、被调用函数需要具备的条件 (1)首先被调用的函数必须是已经定义的函数(是库函数或者用户自己定义的函数) (2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信...息“包含”到本文件中来 (3)如果使用用户自己定义的函数,而该函数的位置在调用它的函数的后面,应该在主调函 数中对被调函数作声明 二、函数声明 一般形式 (1)函数类型 函数名(参数类型...1 参数名1,参数类型2 参数名2,...参数类型n 参数名n) (2)函数类型 函数名(参数类型1,参数类型2,...参数类型n) 注意:如果已在文件的开头(在所有函数之前),已经对本文件中所调用的函数进行了声...明,则在个函数中不必对其所调用的函数再作声明 原创不易,未经本公众号允许禁止转载,否则追究法律责任

    1.3K3229

    详解js原型,构造函数以及class之间的原型关系

    原型 概念 在构造函数创建的时候,系统默认的帮构造函数创建并关联一个对象 这个对象就是原型 作用 在原型中的所有属性和方法,都可以被和其关联的构造函数创建出来的所有的对象共享 访问原型 构造函数名...(一级一级传递 形成了原型链) 替换原型对象的时候,替换之前构造函数创建的对象A和替换之后创建的对象B,A和B的原型是不一致的。...对象能够访问的原型,就是在对象创建的那一刻,和构造函数关联的那个原型 扩展以及延伸 ?...js通过构造函数以及原型链来实现继承。...ES5中的构造函数(声明属性以及静态方法,这种类创建属性和创建方法参照上面动态原型模式的构造函数

    1.6K20

    理解构造函数原型对象

    ,目的是提高性能),可以看作是对象的基类 作用二:在原有的对象基础上,通过prototype进行额外的,封装,拓展(如后面示例代码) 原型是基于构造函数的(也就是说原型是挂载在构造函数下的,先有构造函数...正确写法:当一个函数被创建时,它的prototype属性也被创建,且该原型对象的constructor属性指向该函数,当使用对象字面量形式改写原型对象Person.prototype时,则该constructor...从上结果中可以得出:当构造函数自定义的属性名与该构造函数原型属性名相同时,构造函数的自定义属性优先于原型属性(可以把构造函数理解为内联样式),而原型属性或者原型方法可以看做是class) 小结:构造函数就是用...,在原型里,是原型链,构造函数原型之间的连接就是原型链,当访问对象的某个属性时,js首先在自定义的属性的作用域内查找该变量是否存在,如果不存在,则会沿着原型链向原型下的查找该属性,直至顶层Object...) 使用对象字面量形式改写原型对象会改变构造函数的属性,指向问题,需手动的改写原型对象手动设置constructor属性 在原有的对象基础上,通过prototype进行额外的,封装,拓展 原型中的属性优先级

    1.1K40

    JS高级原型以及函数调用方式

    JavaScript 高级 目标 原型 ==函数原型链== 函数和对象的原型链关系 函数的4种调用方式 箭头函数 2.原型 prototype -重点 原型上存放函数 解决了同一个 say 浪费 内存的问题...原型本质是一个对象,理解为 JavaScript 自动帮我们添加的,只要是构造函数,系统会默认的为构造函数关联一个对象,这个对象就称为构造函数原型,写在原型中的成员,可以被构造函数所创建的实例调用 原型是...JavaScript 自动帮我们在定义构造函数的时候添加的 所有构造函数的实例,共享一个原型 原型上一般是挂载函数 图示 3.原型 proto Javascript 规定,每一个(构造)函数都有一个...4.原型的关系 构造函数、实例、原型三者之间的关系 构造函数:构造函数就是一个函数,配合new可以新建对象。 实例:通过构造函数实例化出来的对象我们把它叫做构造函数的实例。...一个构造函数可以有很多实例。 原型:每一个构造函数都有一个属性prototype,函数的prototype属性值就是原型。通过构造函数创建出来的实例能够直接使用原型上的属性和方法。

    9610

    JavaScript笔记(2) 构造函数原型

    构造函数原型 目标: 这些之前都学过的我就不多赘述了,直接将图片贴上来了 JavaScript的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加....构造函数原型prototype 构造函数通过原型分配的函数是所有对象所共享的....没使用原型对象之前: 因为两个对象指向的函数是不同的地址,所以是false....对象原型__proto__ 对象都会有一个属性__proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有__proto...constructor构造函数 对象原型和构造函数原型对象里面都有一个属性constructor属性,constructor我们称为构造函数,因为它指回构造函数本身 如果我们直接打印Star.prototype.constructor

    38510

    操作系统-VM-linux命令解释器

    2.函数概念说明 以下是对程序调用Linux c函数库的方法说明: (1).调用getcwd()函数 函数原型:char * getcwd(char * buf,size_t size); 函数说明...(2).调用opendir()函数 函数原型:DIR * opendir(const char * name); 函数说明:opendir()用来打开参数name指定的目录,并返回DIR形态的目录流...(4).调用closedir()函数 函数原型:int closedir(DIR *dir); 函数说明:closedir()关闭参数dir所指的目录流。...,通过传入的目录,用opendir()函数打开目录,获取目录流,并且用readdir()函数读取每一个目录节点,打印出信息,最后closedir()关闭该目录。...难的地方是如果去理解Linux c函数库的调用。需要花时间去理解每一个函数的作用和相关参数的作用。

    2.6K20

    C-Pwn常见函数原型及作用

    原型:fputs(char *str,FILE *stream); 参数说明: str:字符型指针,指向存储读入数据的缓冲区的地址。 stream : 指向输入的流。...自动加上'\0'空字符结尾 原型:char * fgets(char * str, int num, FILE * stream); 参数说明: str:字符型指针,指向存储读入数据的缓冲区的地址。...char* ch = "hello world\n"; int len = strlen(ch); write(1,ch,len) read() 作用:read函数从fd指定的已打开文件中读取count...(0,&num,4); atoi 作用:字符串转换成整型数的一个函数 原型:int atoi(const char *nptr); 参数说明: nptr:待转换的字符串 seccomp seccomp_rule_add_exact...() 作用:添加过滤的系统调用 原型: 参数说明:第三个参数是过滤的syscall number,第二个参数是决定怎么去过滤这些syscall numbers。

    1.5K20
    领券