JavaScript基础知识点归纳().docx
《JavaScript基础知识点归纳().docx》由会员分享,可在线阅读,更多相关《JavaScript基础知识点归纳().docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaScr ipt基础学问点归纳(举荐)定义在函数外的变量确定是全局变量;定义在函数内的 变量,假如声明白var,那该变量就是局部变量,假如不声 明van那么该变量就是全局变量。1、全局变量与局部变量JavaScriptvar global = Global”;test ;function test var local = Local”;document, writein(global);document, writein (local);document, writein(global);document, writein(local);2两种类型的Cookiei)许久性cookie,会
2、被存储到客户端的硬盘上。ii)回话cookie:不会被存储到客户端的硬盘上,而是 放在阅读器进程所处的内存当中,当阅读器关闭时则该回话 cookie就销毁了。3、在JavaScript中,函数(function)就是对象object, password = password;object.get = function alert(this. name+,+this. password););return object;var objectl = createObject(zhangsan,123);var object2 = createObject(lisi,456);objectl.get
3、 ;object2.get ;上面两种不带参数和带参数的工厂方法缺点:每创建一个对象,内存中就创建一个get方法,比较奢 侈内存,且影响性能。而我们的期望是,创建两个不同的对 象,它们的属性是不一样的,但方法是共用的。所以接下来 我们须要改进createObject工厂方法。改进的工厂方法:JavaScriptfunction get alert (this. name+,+this. password);)function createObject (name, password) var object = new Object ;object, name = name;object, pa
4、ssword = password;object, get = get;return object;)var objectl = createObject(zhangsan,123);var object2 = createObject(lisi,456);objectl.get ;object2.get ;将get方法定义在createObject函数外面,这样每 创建一个对象,get方法都是共用的。让一个函数对象被多 个对象所共享,而不是每一个对象都拥有一个函数对象。iii)构造函数方式创建对象不带参数的构造函数:JavaScriptfunction Person 在执行行代码前,js引擎
5、会为我们生成一个对象this, name = zhangsan;this, password = 123;this.getlnfo = function alert (this. name+, +this password);此处有一个隐含的return语句,用于将之前生成 的对象返回(也是跟工厂方式不一样的地方)var pl = new Person ;pl.getlnfo ;带参数的构造函数JavaScriptfunction Person (name, password) this, name = name;this, password = password;this.getlnfo =
6、 function alert(this. name+, +this password););var pl = new Person (zhangsan,123);var p2 = new Person(lisi,456);pl. getlnfo ;p2.getlnfo ;iv)原型(prototype)方式创建对象prototype是Object对象里面的一个属性prototypefunction Person Person, prototype, name = zhangsan;Person, prototype, password = 123;Person, prototype.getl
7、nfo = function alert (this. name+, +this. password);var pl = new Person ;var p2 = new Person ;P1. name二kyle ; 对象生成之后再去变更属性pl. getlnfo ;p2.getlnfo ;单纯地运用原型方式有两个问题:,你无法在构造函数 中为属性赋初值,只能在对象生成之后再去变更属性值。prototypeJavaScriptfunction Person )Person, prototype, name = new Array ;Person, prototype, password =
8、123;Person.prototype.getlnfo = function alert (this. name+, +this. password););var pl = new Person ;var p2 = new Person ;pl. name, push(zhangsan);pl. name. push(lisi);pl.password = 456;pl.getlnfo ;p2.getlnfo阅读器将会打印:zhangsan, lisi, 456 和 zhangsan, lisi, 123.假如运用原型方式创建对象,那么生成的全部对象会共 享原型中的属性,这样一个对象变更了该
9、属性也会反应到其 他对象当中。所以单纯地运用原型方式是不行的,还须要结 合其他方式。接下来我们会接着介绍。运用原型+构造函数方式来定义对象JavaScriptfunction Person this, name = new Array ;this, password = 123;)Person, prototype, getlnfo = function alert (this. name+, +this. password);var pl = new Person var p2 = new Person pl. name, push(zhangsan);p2. name. push(lisi
10、);pl. getlnfo p2.getlnfo ;运用原型+构造函数方式来定义对象,对象之间的属性 互不干扰,各个对象间共享同一个方法,这是一种比较好的方式。V)动态原型方式JavaScriptfunction Person this, name = zhangsan;this, password = 123;if(typeof Person, flag = undefined) alert(invoked);Person.prototype.getlnfo = function alert(this, name + , + this, password);Person, flag = tr
11、ue;var pl = new Person ;var p2 = new Person ;pl.getlnfo ;p2.getlnfo ;在动态原型方式中,在构造函数中通过标记量让全部对 象共享一个方法,而每个对象拥有自己的属性。上面代码在 次创建对象时,首先通过一个推断语句,看flag属性是否 已经定义,若没有定义,则通过原型方式添加getlnfo方法, 然后将flag设置为true,那么当其次次创建对象时,if语 句推断为假,跳过执行。这样就达到了我们所期望的结果, 创建的对象属性是互不干扰的,而对象的方法是共享的。17、JavaScript中对象的继承(5种方式)种方式:对象冒充冒充对象
12、继承JavaScript父类function Parent(username) this, username = username;this. sayHello = function alert(this, username);/子类 function Child (username, password)/下面三行代码是最关键的 this, method = Parent;this, method(username);delete this, method;this, password = password;this. sayWorld = function alert(this, passw
13、ord);var p = new Parent(zhangsan);var c=new Child(lisi,123);p. sayHello c. sayHello ;c. sayWorld 其次种方式:call继承的其次种实现方式,call方法方式,call方法是 Function对象中定义的方法,因此我们定义的每个函数都拥 有该方法。call方法的个参数会被传递给函数中的this, 从第2个参数起先,逐一赋给函数中的参数。call继承父类JavaScriptfunction test (str) alert(this. name+,+str);)var object = new Obje
14、ct ;object, name = zhangsan;/test, call相当于调用了 test函数test, call (object, html5war); 将 object 赋给了 this接下来我们用call方式实现对象的继承JavaScript父类function Parent(username)this, username = username;this. sayHello = function (alert(this, username););/子类function Child (username, password) Parent, call(this, username)
15、;this, password = password;this. sayWorld = function alert (this, password););)var p = new Parent(zhangsan);var c = new Child(lisi,123);p. sayHello ;q. sayHello ;r. sayWorld ;第三种方式:applyapply继承父类JavaScript父类function Parent(username) this, username = username;this. sayHello = function alert(this, use
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaScript 基础 知识点 归纳
限制150内