>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20976 个阅读者 刷新本主题
 * 贴子主题:  JavaScript prototype(原型对象) 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2019-08-19 19:26:56     消息  查看  搜索  好友  邮件  复制  引用

  

JavaScript prototype(原型对象)

     所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。                          

范例

function   Person ( first ,  last ,  age ,  eyecolor )   {
   this . firstName  =  first ;
   this . lastName  =  last ;
   this . age  =  age ;
   this . eyeColor  =  eyecolor ;
}

var   myFather  =  new   Person ( " John " ,  " Doe " ,  50 ,  " blue " ) ;
var   myMother  =  new   Person ( " Sally " ,  " Rally " ,  48 ,  " green " ) ;

        我们也知道在一个已存在的对象构造器中是不能添加新的属性的:                    

范例

           Person . nationality  =  " English " ;

        要添加一个新的属性需要在在构造器函数中添加:                    

范例

function   Person ( first ,  last ,  age ,  eyecolor )   {
   this . firstName  =  first ;
   this . lastName  =  last ;
   this . age  =  age ;
   this . eyeColor  =  eyecolor ;
   this . nationality  =  " English " ;
}

prototype 继承

   所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:    
  •   Date 对象从  Date.prototype 继承。
  •   Array 对象从  Array.prototype 继承。
  •   Person 对象从  Person.prototype 继承。
        所有 JavaScript 中的对象都是位于原型链顶端的 Object 的范例。

         JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

          Date 对象,  Array 对象, 以及  Person 对象从  Object.prototype 继承。                            

添加属性和方法

     有的时候我们想要在所有已经存在的对象添加新的属性或方法。

         另外,有时候我们想要在对象的构造函数中添加属性或方法。

                 使用 prototype 属性就可以给对象的构造函数添加新的属性:                    

范例

function   Person ( first ,  last ,  age ,  eyecolor )   {
   this . firstName  =  first ;
   this . lastName  =  last ;
   this . age  =  age ;
   this . eyeColor  =  eyecolor ;
}

Person . prototype . nationality  =  " English " ;

            当然我们也可以使用 prototype 属性就可以给对象的构造函数添加新的方法:            

范例

function   Person ( first ,  last ,  age ,  eyecolor )   {
   this . firstName  =  first ;
   this . lastName  =  last ;
   this . age  =  age ;
   this . eyeColor  =  eyecolor ;
}

Person . prototype . name  =  function ( )   {
   return   this . firstName  +  "   "  +  this . lastName ;
} ;

   程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-07 21:22:35 重新编辑]
  Java面向对象编程-->Java常用类(上)
  JavaWeb开发-->JSP技术详解(Ⅰ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->ServerSocket用法详解
  精通Spring-->绑定CSS样式
  Vue3开发-->创建综合购物网站应用
  webpack常用插件
  前端图片压缩库images-quickly-compress
  vue导出pdf格式文件
  HTML表单元素的用法
  JavaScript的HTML DOM Column 对象
  JavaScript Array 对象
  响应式 Web 设计:显示图片
  CSS3 文本效果
  CSS 网页布局
  CSS 伪类
  HTML 头部的元素的用法
  JavaScript 闭包
  JavaScript 调试
  JavaScript中的for 循环
  非常实用的CSS样式
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。