位置: 编程技术 - 正文

JavaScript 原型与继承说明(简述javascript原型和原型链有什么特点?)

编辑:rootadmin
function A(x) { this.x = x; } alert(A.prototype); alert(A.prototype.constructor); 根据弹出的结果,我们可以得到:原型对象是由函数的构造函数创建,它所拥有的属性能被所有对象共享,初始时原型对象指向一个Object对象,并且定义了一个constructor属性,该属性指向定义该原型对象的构造函数本身,再看如下代码。 Code function A(x) { A.prototype.x = x; } var obj = new A(); alert(obj.x); alert(obj.constructor); 因为原型对象的所有属性能被构造函数创建对象共享,所以创建的对象可以访问这里的constructor属性,同时obj对应的就是原型对象(prototype)所创建出来的一个实例,那么重写constructor属性会出现什么样的结果呢? Code function A(x) { A.prototype.x = x; } var objA = new A(); objA.constructor = function(x){ alert("重写obj的constructor属性");this.x = }; objA.constructor(); alert(objA.x); var objB = new A(); alert(objB.x); 根据结果我们可以看到,首先弹出的是“重写obj的constructor属性”,然后弹出,在弹出,可见,我们在书写重写objA这个对象的constructor之后,objB并没有被改变,因此无论在一个对象加入或修改多少属性这都不影响其原型对象中属性的本来面目,其实很容易理解js为什么这样做,因为一个对象的行为不能影响到其他对象,否则将会造成混乱。 在这里,我们可以总结一下,上面代码的规则: 1.当我们调用某个对象的时候,首先检查该对象本身的自己定义的属性,如果存在则调用。 2.当自己本身的属性不存在的时候,则调用其构造函数所定义的原型对象的引用。 那么根据这个规则,就形成了JavaScript中的一个原型链,我们就可以根据这个规则来定义继承关系。 这段代码显示了两个函数,B函数继承与A函数,A.call(this.x)表示,将B的对象this传递到A函数中进行执行。然后,我们同样需要由B函数构造出来的对象需要包含A函数的所有特性,因此需要加上这么一句话。 先我们指定B的原型为A,因此,B函数继承了A函数的特性,根据弹出的结果,我们可以看到,其constructor指向的是A函数,那么我们的B函数的特性是不是丢失了呢?因此,我们需要在加上一句话,最后给出继续的整合代码。 若有疑问或不正之处,欢迎提出指正和讨论。

推荐整理分享JavaScript 原型与继承说明(简述javascript原型和原型链有什么特点?),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript 原型与继承说明(简述javascript原型和原型链有什么特点?)

文章相关热门搜索词:js原型constructor,js的原型对象,javascript中的原型和原型链,简述javascript原型和原型链有什么特点?,js原型作用,javascript原型和原型链特点,javascript原型和原型链特点,javascript中的原型和原型链,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript的单例模式 (singleton in Javascript) 单例模式的基本结构:MyNamespace.Singleton=function(){return{};}();比如:MyNamespace.Singleton=(function(){return{//Publicmembers.publicAttribute1:true,publicAttribute2:,publicMethod1:fu

JavaScript接口实现代码 (Interfaces In JavaScript) 在实际中,我们可以在注释中定义好接口,在实际的代码中予以实现比如:/*interfaceComposite{functionadd(child);functionremove(child);functiongetChild(index);}interfaceFormI

javascript面向对象编程(一) 实例代码 scripttype="text/javascript"vartest={numA:,objB:{},arrC:[],init:function(){alert(this.numA);},sayHi:function(name){alert("hello"+name);},sayHelloWorld:function(){this.sayHi("world");},get:function()

标签: 简述javascript原型和原型链有什么特点?

本文链接地址:https://www.jiuchutong.com/biancheng/385716.html 转载请保留说明!

上一篇:JavaScript 构造函数 面相对象学习必备知识(javascript构造函数创建对象)

下一篇:JavaScript的单例模式 (singleton in Javascript)(js编写一个标准的单例模式类)

  • 一般纳税人开具的普票可以抵扣吗
  • 国有划拔土地房整体可以买卖吗
  • 经营性投资是什么
  • 商业折扣影响主要因素有
  • 上个月没有清卡,这个月可以抄税吗
  • 资产负债表递延收益
  • 记账凭证背面怎么填写
  • 全额工资是到手工资吗
  • 以前年度少计提费用
  • 小规模公司缴税以后公转私
  • 私售发票如何处罚
  • 分包工程违法吗
  • 应纳税所得额的计算公式
  • 应收账款减少计提坏账吗
  • 扣缴个人所得税报告表
  • 一般纳税人采购收到普通发票
  • 结转已完工产品会计分录
  • 怎么查核定征收额度
  • 差额发票开具的步骤
  • 计提了坏账准备对利润的影响
  • 小企业长期待摊费用包括哪些
  • 登记变更是什么意思
  • 未计提印花税会计分录
  • 怎么关闭iphone手机
  • 出口退税的会计分录实例
  • 持有待售的非流动资产或处置组不再
  • 查看电脑开机时间记录win10
  • php mktime函数
  • 支付宝花呗服务升级有什么用
  • win10电脑防火墙如何关闭
  • jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例)
  • 吕宋岛以南坐落着21座极大的岛屿
  • 长期挂账的其他应付款转营业外收入情况说明
  • 只有使用权的房子能继承吗
  • vue页面路由传参
  • 应收账款项目在资产负债表怎么填列
  • wordpress添加css
  • 记账凭证和收付账簿区别
  • 观察者模式java实现
  • 前端解决跨域问题的8种方案(最新最全)
  • npm install或npm i后没有依赖包node_modules?
  • 小微企业认定标准时间
  • 区块链教程大全
  • 银行代发工资会扣个人所得税吗
  • 燃油税税率是多少
  • 国家企业信用公示信息公示
  • 支出金额是什么
  • 月底留抵税额需要结转吗
  • 职工福利费的会计处理
  • 所得税预缴申报表中营业成本怎么计算
  • 折扣方式销售如何确定销售额?
  • 费用报销如何做账务处理分录
  • 房地产公司员工购房
  • 包含个人社保的保险
  • 附表1是什么意思
  • 2019年新政府会计准则解读
  • 托收承付的承付是指
  • 电脑算固定资产哪一类
  • windows中的帐户类别administrator为
  • window web
  • 通过防火墙可以保证窃听到的信息毫无价值
  • 32位/64位Win10系统开机后桌面图标自动排列的解决办法
  • ubuntu安装quagga
  • linux用什么写c
  • javascript数据结构与算法 pdf
  • 前端 插件
  • 如何做批处理命令
  • javascript 数组
  • vue是如何实现双向绑定的
  • csx脚本
  • javascript中的107个基础知识收集整理 推荐
  • 简述python语言
  • 四川省网上税务局申报流程
  • 图书销售税点
  • 上海地铁和公交乘车码
  • 铁岭医保网上怎么交费
  • 仓库需要交房产税吗
  • 二手商铺买卖
  • 收购烟叶多少公斤违法
  • 无锡城市生活垃圾处理费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设