下载此文档

javascript中new关键字详解 基础知识.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
javascript中new关键字详解_基础知识.doc:..javascript中new关键字详解和其他高级语言一样javascript中也有new关键字,我们以前认知的new是用来创建一个类的实例对象,但在js中万物皆是对象,为何还耍new关键字呢,其实js中new关键字不是用來创建一个类的实例对象,而是用于继承。接下來,本文将带你-•起来探索JS中new的奥秘・・・functionAnimal(name){;}Animal,color=,,black,/;Animal,=function(){'m"+this,name);};varcat二newAnimal("cat");console・Iog(,////undefined);();//I'(,//AnimalAnimal,color//back);Animal,say();//,说明你已非常了解jsipnew和this的运行机制,请忽略本文!我们将通过解析这个例子来加深你对js«|lncw和继承的理解!【如果你对js的this还不了解,请先阅读:JS作用域和this关键字】一、代码解读1-3行创建了一个函数Animal,并在其this上定义了属性:name,name的值是函数被执行时的形参。第4彳亍在Animal对彖(Animal本身是一个函数对彖)上定义了一个静态属性:color,并赋值“black”5-7行在Animal函数的原型对象prototype±定义了一个say()方法,say方法输出了this的name值。第8行通过new关键字创建了一个新对象cat10-14行cat对象尝试访问name和color属性,并调用say方法。16-20彳亍Animal对象尝试访问name和color属性,并调用say方法。二、重点解析第8行代码是关键:varcat二newAnimal(,zcat,z);JS引擎在执行这句代码时,做了很多工作,用伪代码模拟其工作流程如下:varobj={};=Animal,prototype;(obj,〃cat〃);returntypeofresult二二二'obj'?result:obj;(1)创建一个空对象obj;(2)把obj的—proto_指向Animal的原型对象prototype,此时便建立了obj对象的原型链:obj-〉->-〉nul1【如果你不了解JS原型链,请先阅读:JS原型和原型链】(3)在obj对象的执行空间调用Animal函数并传递参数“cat”°(z,cat〃)。当这句执行完Z后,obj便产生了属性name并赋值为,zcat\【关于JS中call的用法请阅读:JS的call和apply](4)考察第3步返回的返回值,如果无返回值或者返回一个非对象值,则将obj返回作为新对象;

javascript中new关键字详解 基础知识 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小64 KB
  • 时间2019-07-27