`
softall
  • 浏览: 20149 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

js 高级指导

 
阅读更多
创建对象的方法
一:临时对象创建
var object = new Object();
object.name = "zhangsan";
object.age = "123";
var object1 = object;
var object2 = object;
alert(object1.name);
缺点:一次只能创建一个对象,每次创建对象都要对属性赋值一次。
二:工厂方法创建
function createObject()
{
var object = new Object();
object.name = "zhangsan";
object.age = "123";
object.info = function()
{
alert(object.name+":"+object.age);
}
return object;
}
var object1=createObject();
var object2=createObject();
object1.info();
object2.info();
缺点:可以不停地创建对象,但是这样每次创建对象的时候属性和方法都创建一次,而我们希望属性不同,而方法共享。
三:构造函数创建
Function xxx(name,age)
{
This.name=name;
This.age=age;
This.info=function()
{
alert(object.name+":"+object.age);
}
}
Var object1=new xxx(“zhangsan”,23);
缺点:同三
四:原型(prototype)创建
Function xxx()
{

}
xxx.prototype.name=”zhangsan”;
xxx.prototype.age=”23”;
如果使用了原型方式对象,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反应到其他对象当中。Propotype是一个原型对象,就相当于父类对象。所以
xxx.protype.info=function(){…}相当于父类的一个方法,子类xxx都继承这个方法,所以子类xxx在创建对象的时候不会重复创建这个方法,但都可以共享(继承)这个方法;
缺点:单纯使用原型方式定义对象无法在构造函数中为属性赋初值,只能在对象生成后改变属性值,而且多个对象共享属性值是不能容忍的。
五:原型+构造函数创建
Function xxx(name,age)
{
This.name=name;
This.age=age;
}

xxx.prototype.info=function()
{
alert(object.name+":"+object.age);
}
Var object1=new xxx(“zhangsan”,23);
能够实现属性根据不同的对象不同,且能共享同样的方法。这种方式可用。
六:动态原型+构造函数创建
function xxx(name,age)
{
this.name=name;
this.age=age;
if(!this.info)
{
alert("xxxx");//只输出一次,说明虽然创建多个对象,但是函数只创建一次。
xxx.prototype.info = function()
{
alert(this.name+":"+this.age);
}
}
}
var object1=new xxx("zhangsan",23);
var object2=new xxx("lisi",24);
object1.info();//输出"zhangsan",23
object2.info();//输出"lisi",24
9对象继承
一:对象冒充法
function Person(name)
{
this.name=name;
this.info=function()
{
alert(this.name);
}
}

function Child(name,age)
{
this.method = Person;
/*相当于把this.method指向Person的引用,等价于
this.method= function Person(name)
{
this.name=name;
this.info=function()
{
alert(this.name);
}
}*/

this.method(name);
delete this.method;
this.age=age;
this.sayAge = function()
{
alert(this.age);
}
}
var a = new Person("zhangsan");
var b = new Child("zhangsan",23);
a.info();//输出zhangsan
b.info();//输出zhangsan
b.sayAge();//输出23
二:call()继承法
function Person(name)
{
this.name=name;
this.info=function()
{
alert(this.name);
}
}

function Child(name,age)
{
Person.call(this,name);//第一个参数是传给Person的this对象,第二个参数传给Person的参数。这里是将Child对象传递给Person的this对象
this.age=age;
this.sayAge = function()
{
alert(this.age);
}
}
var a = new Person("zhangsan");
var b = new Child("zhangsan",23);
a.info();
b.info();
b.sayAge();
三:apply()继承法
function Person(name)
{
this.name=name;
this.info=function()
{
alert(this.name);
}
}

function Child(name,age)
{
Person.apply(this,new Array(name));//和cell区别不大,只是第2个参数传递的是一个参数数组。
this.age=age;
this.sayAge = function()
{
alert(this.age);
}
}
var a = new Person("zhangsan");
var b = new Child("zhangsan",23);
a.info();
b.info();
b.sayAge();
四:prototype继承
function Person()
{
}
Person.prototype.name="zhangsan";
Person.prototype.info=function()
{
alert(this.name);
}
function Child()
{
}
Child.prototype = new Person();//将Child类的父类对象赋值为Person对象,即相当于继承父类。
var a = new Person();
var b = new Child();
a.info();
b.info();
五:混合继承(推荐)
function Person(name)
{
this.name=name;
}
Person.prototype.info=function()
{
alert(this.name);
}
function Child(name,age)
{
Person.call(this,name);//通过cell来继承属性
this.age=age;
}

Child.prototype = new Person();//通过原型对象来继承方法,这里因为只继承方法,所以Person()不需要传参数
Child.prototype.sayAge = function()
{
alert(this.age)
}
var a = new Person("zhangsan");
var b = new Child("lisi",23);
a.info();
b.info();
b.sayAge();
分享到:
评论

相关推荐

    W3C JavaScript 高级教程.rar

    JS 指导方针 JavaScript 对象 JS 对象简介 JS 字符串 JS 日期 JS 数组 JS 逻辑 JS 算数 JS RegExp JS HTML DOM JavaScript 高级 JS 浏览器 JS Cookies JS 验证 JS 动画 JS 图像地图...

    JAVASCRIPT 实验指导书

    集中实训则在课程结束后进行,目的是综合运用所学内容,共有五个项目,其中包括设计验证码验证功能,这涉及到随机函数和隐藏控件的使用,有助于学生理解和应用JavaScript的高级特性。 实训一主要关注JavaScript的...

    JavaScript高级教程(完整版)

    这篇《JavaScript高级教程》全面深入地探讨了这门语言的核心概念和技术,旨在帮助开发者从初级水平跃升至高级阶段。 首先,JavaScript的基础部分涵盖了变量、数据类型(包括基本类型和引用类型)、操作符、流程控制...

    js高级技巧

    JavaScript,作为一种广泛应用于Web开发的动态编程语言,已经成为现代互联网技术...无论你是初学者还是有一定经验的开发者,"JavaScript高级程序设计"教程都能为你提供宝贵的指导,助你在JavaScript的世界里游刃有余。

    node.js高级编程

    《Node.js高级编程》这本书深入探讨了Node.js这一强大的JavaScript后端开发框架,它使得开发者可以用JavaScript语言构建高性能的网络应用。以下将详细介绍Node.js的基本概念、核心模块以及其在实际开发中的应用。 ...

    java高级编程指导

    【压缩包子文件的文件名称列表】:“JavaScript高级编程”虽然不在Java高级编程的范畴内,但可以联想到这可能是为了对比或者补充Java的学习。JavaScript是Web开发中不可或缺的一部分,其高级编程同样涉及到异步处理...

    精通D3.js:交互式数据可视化高级编程

    最后,本书提供了关于如何将D3.js与其他工具和技术集成的指导,例如在项目中结合流行的前端框架、后端服务或数据管理工具。这种集成能进一步扩展D3.js的应用范围,使其不仅可以用于静态网页上的数据可视化,还可以...

    JavaScript 高级编程 基础入门pdf版.7z

    总之,这份“JavaScript 高级编程 基础入门”PDF教程将引导你逐步走进JavaScript的世界,无论是变量的声明,还是复杂的异步编程,都将为你提供坚实的理论基础和实践指导。通过深入学习并实践其中的内容,你将具备...

    精通D3.js:交互式数据可视化高级编程1

    在掌握了基础后,第3章指导读者如何安装和使用D3.js。可以下载库文件,也可以通过网络引用引入。搭建本地服务器是为了测试和调试D3.js代码,通过Hello,World示例和简单的矢量图绘制,初学者能快速上手。 第4章至第...

    Javascript 高级程序设计(第3版)+ 源代码

    《JavaScript高级程序设计(第3版)》是深入理解JavaScript编程的一部经典著作,它详细讲解了JavaScript的核心概念、语法以及高级特性。这本书结合源代码,为读者提供了丰富的实践案例,帮助开发者深入学习和掌握这...

    accp5.0 javascript指导学习一.rar

    "accp5.0 javascript指导学习一.rar"这个压缩包很可能是为学习者提供的一份详细的JavaScript教学资料,涵盖了理论知识与实践操作。 JavaScript是一种轻量级的解释型编程语言,主要运行在浏览器环境中,用于实现网页...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版

    总之,《JavaScript.DOM高级程序设计》涵盖了JavaScript与DOM交互的各个方面,无论你是初学者还是有经验的开发者,都能从中获得宝贵的指导,提升在网页和Web应用开发中的专业技能。通过阅读和实践书中的内容,你将...

    JavaScript权威指南(第六版) 清晰-完整

    此外,还介绍了类和模块的概念,为读者理解和运用JavaScript中的面向对象编程提供了指导。 JavaScript权威指南第六版还介绍了正则表达式的模式匹配,包括正则表达式的定义和在字符串中的应用。在探讨了JavaScript...

    Web前端开发技术实战视频教程 初级入门+高级实战++专家课程+面试指导

    综上所述,从Web前端开发的基础概念到高级实战技巧,再到专家级技能及面试指导,涵盖了整个学习路径中的关键知识点。无论是初学者还是希望进阶的专业人士,都可以根据自身需求挑选合适的学习内容进行深入研究。

    javascript高级教程

    "JavaScript高级教程"旨在帮助开发者进一步提升他们的JavaScript技能,从基础概念到高级特性,全方位掌握这门语言。 教程的第一部分介绍了"JavaScript高级教程"的概览,可能包括了对JavaScript历史的简述,它的重要...

    JavaScript高级编程

    《JavaScript高级编程》的学习指导主要涵盖了JavaScript这门广泛应用于网页特效和交互的脚本语言的高级概念和技术。JavaScript,作为Web开发中的核心语言之一,它不仅用于简单的页面交互,还能实现复杂的网页应用...

    javascript入门指导

    ### JavaScript入门指导 #### JavaScript简介 JavaScript是一种广泛应用于前端开发中的高级编程语言,它被设计用于向HTML页面添加交互性。随着互联网的发展,JavaScript已成为Web开发不可或缺的一部分,并且其应用...

    JavaScript(任务指导).pdf

    2. JavaScript高级特性:深入学习对象、数组、字符串处理、DOM操作、事件处理、表单验证等。 3. 实践操作:通过实际项目或示例代码加深对JavaScript的掌握和理解,不断实践,以便熟练运用到项目开发中。 五、前端...

    w3schoolJavaScript高级教程chm打包最新版本

    本教程是 w3school JavaScript 教程的高级版本。 本教程从 JavaScript 的历史开始讲起,直到当前它对 XML 和 Web 服务的支持。 您将学习到如何扩展该语言,以使它适应特殊的需求。 您还将学到如何使用 JavaScript ...

    JavaScript内核高级教程

    ### JavaScript内核高级教程知识点概览 #### 一、JavaScript简史与发展背景 - **JavaScript的诞生**:在20世纪90年代初期,互联网上的网页主要是静态的,用户与网页之间的互动非常有限。为了增强网页的交互性,...

Global site tag (gtag.js) - Google Analytics