当前位置: 首页 > news >正文

政协网站建设意义上海制作网页宣传

政协网站建设意义,上海制作网页宣传,呼和浩特商城网站建设,做网站要学习什么目录 一、从古代说起 二、Brendan Eich的选择 三、new运算符的缺点 四、prototype属性的引入 五、总结 六代码部分 一、从古代说起 要理解Javascript的设计思想#xff0c;必须从它的诞生说起。 1994年#xff0c;网景公司#xff08;Netscape#xff09;发布了Navi…目录 一、从古代说起 二、Brendan Eich的选择 三、new运算符的缺点 四、prototype属性的引入 五、总结 六代码部分 一、从古代说起 要理解Javascript的设计思想必须从它的诞生说起。 1994年网景公司Netscape发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器轰动一时。但是这个版本的浏览器只能用来浏览不具备与访问者互动的能力。比如如果网页上有一栏用户名要求填写浏览器就无法判断访问者是否真的填写了只有让服务器端判断。如果没有填写服务器端就返回错误要求用户重新填写这太浪费时间和服务器资源了。 因此网景公司急需一种网页脚本语言使得浏览器可以与网页互动。工程师Brendan Eich负责开发这种新语言。他觉得没必要设计得很复杂这种语言只要能够完成一些简单操作就够了比如判断用户有没有填写表单。 1994年正是面向对象编程object-oriented programming最兴盛的时期C是当时最流行的语言而Java语言的1.0版即将于第二年推出Sun公司正在大肆造势。 Brendan Eich无疑受到了影响Javascript里面所有的数据类型都是对象object这一点与Java非常相似。但是他随即就遇到了一个难题到底要不要设计继承机制呢 二、Brendan Eich的选择 如果真的是一种简易的脚本语言其实不需要有继承机制。但是Javascript里面都是对象必须有一种机制将所有对象联系起来。所以Brendan Eich最后还是设计了继承。 但是他不打算引入类class的概念因为一旦有了类Javascript就是一种完整的面向对象编程语言了这好像有点太正式了而且增加了初学者的入门难度。 他考虑到C和Java语言都使用new命令生成实例。 C的写法是 ClassName *object new ClassName(param); Java的写法是 Foo foo new Foo(); 因此他就把new命令引入了Javascript用来从原型对象生成一个实例对象。但是Javascript没有类怎么来表示原型对象呢 这时他想到C和Java使用new命令时都会调用类的构造函数constructor。他就做了一个简化的设计在Javascript语言中new命令后面跟的不是类而是构造函数。 举例来说现在有一个叫做DOG的构造函数表示狗对象的原型。 function DOG(name){ this.name name; } 对这个构造函数使用new就会生成一个狗对象的实例。 var dogA new DOG(大毛); alert(dogA.name); // 大毛 注意构造函数中的this关键字它就代表了新创建的实例对象。 三、new运算符的缺点 用构造函数生成实例对象有一个缺点那就是无法共享属性和方法。 比如在DOG对象的构造函数中设置一个实例对象的共有属性species。 function DOG(name){ this.name name; this.species 犬科; } 然后生成两个实例对象 var dogA new DOG(大毛); var dogB new DOG(二毛); 这两个对象的species属性是独立的修改其中一个不会影响到另一个。 dogA.species 猫科; alert(dogB.species); // 显示犬科不受dogA的影响 每一个实例对象都有自己的属性和方法的副本。这不仅无法做到数据共享也是极大的资源浪费。 四、prototype属性的引入 考虑到这一点Brendan Eich决定为构造函数设置一个prototype属性。 这个属性包含一个对象以下简称prototype对象所有实例对象需要共享的属性和方法都放在这个对象里面那些不需要共享的属性和方法就放在构造函数里面。 实例对象一旦创建将自动引用prototype对象的属性和方法。也就是说实例对象的属性和方法分成两种一种是本地的另一种是引用的。 还是以DOG构造函数为例现在用prototype属性进行改写 function DOG(name){ this.name name; } DOG.prototype { species : 犬科 }; var dogA new DOG(大毛); var dogB new DOG(二毛); alert(dogA.species); // 犬科 alert(dogB.species); // 犬科 现在species属性放在prototype对象里是两个实例对象共享的。只要修改了prototype对象就会同时影响到两个实例对象。 DOG.prototype.species 猫科; alert(dogA.species); // 猫科 alert(dogB.species); // 猫科 五、总结 由于所有的实例对象共享同一个prototype对象那么从外界看起来prototype对象就好像是实例对象的原型而实例对象则好像继承了prototype对象一样。 六代码部分 function Fun(){// this.run function(){}}Fun.prototype.run function(){}var obj1 new Fun(); var obj2 new Fun();console.log( obj1.run obj2.run )
http://www.zqtcl.cn/news/570643/

相关文章:

  • wordpress 百度站长沈阳app开发公司哪家好
  • 做网站平台公司网站建设硬件环境
  • 可视化编辑建站平台新密市城乡建设局网站
  • 电子商务的网站的建设内容wordpress主题 微软
  • 什么软件可以做动画视频网站网站的按钮怎么做 视频
  • 饰品做商城网站模式17网站一起做网店新塘
  • 微信做的地方门户网站做设计的平台
  • 旅游网站建设国内外现状安卓开发软件安装教程
  • 网站建设必备网站自助建设
  • 杭州免费自助建站模板辽宁建设工程信息网为什么打不开
  • sdcms网站源码百度怎么免费做网站
  • 图书馆网站参考咨询建设wordpress安装500
  • 详细描述建设网站wordpress 子页面
  • 做公司网站推广如何快速推广
  • 给期货交易类做网站违法吗青海企业网站制作
  • 成都网站模板购买一站式营销型网站建设服务
  • wordpress建站优势做网站认证对网站有什么好处
  • synology做网站专业企业建站价格
  • php开发大型网站开发免费个人微网站
  • 专门做奢侈品的网站怎么建设课题网站
  • 博客推广那个网站列好深圳社保个人网页登录
  • 网站的背景图怎么做最新章节 第一百四十七章 做视频网站
  • 济南网站建设百家号阿里云怎么wordpress
  • 网站分享对联广告北京建设执业网站
  • 一级做爰片免费网站域名流量查询
  • 做网站网站需要注意什么网站建设swot市场分析
  • 大学生兼职网站的融资方案云凡济南网站建设开发
  • 做动态效果的插件网站抚顺清原网站建设招聘
  • 商务网站开发需求分析厦门35网站建设公司
  • wordpress classseo推广服务