热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

影驰gts450黑将显卡支持directX11那我系统要不要装这个directX11呢?

1.原型  创建的每一个函数都有一个prototype(原型)属性,这个属性是一个对象。而类的构造函数也是函数,只不过它是通过 new 操作符调用的,才作为构造函数,所有它也具有原型属性。默认情况下,

1.原型

  创建的每一个函数都有一个prototype原型)属性,这个属性是一个对象。而类的构造函数也是函数,只不过它是通过 new 操作符调用的,才作为构造函数,所有它也具有原型属性。默认情况下,所有protoptype属性都会自动获得一个constructor(构造函数)属性,这个属性包含一个指针,指向prototype属性所在的函数(即构造函数)。原型属性的作用是为该类的所有实例提供共享的属性和方法,而构造函数中定义的属性和方法是某个实例独有的。通常,我们组合使用构造函数模式和原型模式来创建自定义类。

 

关于重写整个原型对象引起的问题:

let Person = function (name,age){
this.name = name;
this.age = age;
};
let p
= new Person("Tim",18);
Person.prototype
= { //重写原型对象
sayName:
function (){
alert(
this.name);
}
}
p.sayName(); //报错:sayName()不是一个函数

重写原型对象之前:

 

 

重写原型对象之后:

 

    从图中可以看到,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针_proto_。重写之后,Person类就指向新的原型对象,而实例p还是指向原来的原型对象,原来的原型对象中没有定义sayName函数。

 

 


 2.继承关系中的原型链

  原型链是实现继承的主要方法,其基本思想是:将子类的原型等于父类的实例,此时作为父类的实例,它拥有_proto_指针指向父类的原型,那么子类创建的所有实例,都能继承父类原型中的属性和方法,从而实现继承。另外,所有函数的默认原型都是Object实例,因此父类的默认原型也会包含一个内部指针指向Object.prototype,这也是所有自定义类都会继承toString()、valueOf()等默认方法的根本原因。

  但仅仅使用原型链来实现继承,也会面临着同样的“共享”问题:



  •   由于子类的原型作为父类的一个实例,那么父类构造函数中的属性会被子类所有实例继承,一旦有一个实例修改了这个属性,其他实例的该属性也会被影响;

  •   在创建子类的实例时,我们不能向父类的构造函数传参,因为这样会像上一点介绍的那样,影响其他实例。

  因此,通常会借用构造函数来实现组合继承。

function SuperType(name){
this.name = name;
}
SuperType.prototype.sayName
= function(){
alert(
this.name);
}
function SubType(name,age){
SuperType.call(
this,name); //这里使用了call()来指定父类构造函数的调用对象,这样就可以为每个子类实例提供不同的父类属性值,解决了上述问题
this.age = age;
}
SubType.prototype
= new SuperType();
SubType.prototype.sayAge
= function(){
alert(
this.age);
}
let instance1
= new SubType("Tom",18);
instance1.sayName();
instance1.sayAge();
let instance2
= new SubType("Mike",16);
instance2.sayName();
instance2.sayAge();

 



推荐阅读
  • LeetCode 540:有序数组中的唯一元素
    来源:力扣(LeetCode),链接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array。题目要求在仅包含整数的有序数组中,找到唯一出现一次的元素,并确保算法的时间复杂度为 O(log n) 和空间复杂度为 O(1)。 ... [详细]
  • 如何在Faceu激萌中设置和使用妆容切换特效?
    本文将详细介绍如何在Faceu激萌应用中设置和使用妆容切换特效,帮助用户轻松实现创意拍摄。无论是新手还是有经验的用户,都能从中受益。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 探讨一个老旧 PHP MySQL 系统中,时间戳字段不定期出现异常值的问题及其可能原因。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 郑州大学在211高校中的地位与排名解析
    本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 电子元件封装库:三极管、MOS管及部分LDO(含3D模型)
    本资源汇集了常用的插件和贴片三极管、MOS管以及部分LDO的封装,涵盖TO和SOT系列。所有封装均配有高质量的3D模型,共计96种,满足日常设计需求。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
author-avatar
韩铁衣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有