js逻辑训练题_js面向对象练习题.doc

js面向对象练习题

精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 js面向对象练习题 //一、通用创建函数 function New{ //定义临时的中转函数壳 function new_ { // 调用原型中定义的构造函数,中转构造逻辑及构造参数,用Create方法,来替代原有的构造函数

aClass.Create.apply;

}; function person{ =name; } // IE9及以上 GOOGLE FIREFOX支持,IE8及IE8以下不支持,跟上面的方法类似 // getPrototypeOf获取Object的原型,IE版本要求高IE9以上 var o = Object.create.Create; o.sayHello; window.onload = function {var obj = New; obj.sayHello;// Person var Person = { } // 模拟Object.create方法,初始化 Create:function { }, sayHello: function { } alert; =name; this.age=age; returnthis; }; }; new_.prototype=aClass; returnnew new_;

// 二、原型链级,子类需要一个原型指向父类,传递起来比较麻烦

totype.sayHello=function{

// 子类原型指向父类Person

totype=new person;

// 子类原型添加showMoney方法

totype.showMoney=function{

var em=new employee;

em.showMoney;

em.sayHello;

var pp=new person;

pp.sayHello;

//alert;

Stotype.toString=function{

}; }; alert; //pany=“MS”; //原型的方法 Ptotype.SayHello = function {alert; }; var BillGates = new Person;

BillGates.SayHello; //由于继承了原型的东西,规规矩矩输出:Hello, I’m Bill Gates

var SteveJobs = new Person; SteveJpany = “Apple”; //设置自己的company属性,掩盖了原型的company属性

SteveJobs.SayHello; //都是自己覆盖的属性和方法,输出:Hi, Steve Jobs like Apple, ha ha ha BillGates.

函数

作用域链:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,他内部的规则是,把函数自身的变量放在最前面,把自身的父级函数中的变量放到其次,再高一级的放在更后面,以此类推,最后到全局对象为止。当函数中遇到一个变量时,JS解析器会去作用域链中查找,从函数本身变量开始查找,如果没有再上一级,。。一旦找到就不再继续,如果到最后也没有找到需要的变量,则返回undefined

垃圾回收机制:一个函数在执行开始的时候,会给其中定义的变量划分内存空间,等到函数执行完毕,这些变量被认为是无用的,对应的内存空间也就被回收了。下次再执行的时候,又分配一个内存空间,如此周而复始。但是如果这个函数内部又嵌套了另一个函数,而这个被嵌套的函数又在外部被调用,并且这个嵌套函数又实用了外部函数的某些变量的话,上面的内存回收机制就会出现问题。如果在外部函数返回后,又直接调用了内部函数,那么内部函数就无法读取到他所需的外部函数中的变量值。所以js解释器在遇到函数定义的时候,会自动把函数和他可能使用的变量)一起保存起来.也就三、闭包:什么是闭包 要了解什么是闭包,涉及到JS的其他几个特性:作用域链,垃圾回收机制,嵌套//实现了自己的SayHello方法,掩盖了原型的SayHello方法 SteveJobs.SayHello = function { alert; };

是构建一个闭包,这些变量将不会被内存回收器所回收,只有当内部的函数不可能被调用以后,才会销毁这个闭包,而

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值