`
johnnywww
  • 浏览: 21032 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习javascript对象创建方法(参照别人代码,持续更新)

 
阅读更多
    1. functionClassA(id){
    2. this.id=id;
    3. this.sayId=function(){
    4. alert(this.id);
    5. };
    6. }

    7. functionClassB(id,name){
    8. this.newMethod=ClassA;
    9. this.newMethod(id);
    10. deletethis.newMethod;

    11. this.name=name;
    12. this.sayName=function(){
    13. alert(this.name);
    14. };
    15. }

    1. functionClassB(id,name){
    2. ClassA.call(this,id);//this指向ClassB的对象

    3. this.name=name;
    4. this.sayName=function(){
    5. alert(this.name);
    6. };
    7. }

    1. functionClassB(id,name){
    2. ClassA.apply(this,newArray(id));//this指向ClassB的对象

    3. this.name=name;
    4. this.sayName=function(){
    5. alert(this.name);
    6. };
    7. }
    1. functionClassA(id){
    2. this.id=id;
    3. }
    4. ClassA.prototype.sayId=function(){
    5. alert(this.id);
    6. };
    7. functionClassB(id,name){
    8. ClassA.call(this,id);
    9. this.name=name;
    10. }
    11. ClassB.prototype=newClassA();
    12. ClassB.prototype.sayName=function(){
    13. alert(this.name);
    14. }

    对象能够执行prototype 属性定义的方法,是因为用构造方法生成的对象和构造方法之间有紧密联系,对象寻找属性时,如果自己没有这个属性,会在构造方法的propotype所指向/引用的对象中找,看能否找到同名属性,如果找到,就会读取它的值并返回.(这个过程会持续向上,直到持续到Object对象为止,即所谓原型方式的继承).
    1. varo={};//o不是对象
    2. o.eat=function(){return"3432";};
    3. o.pass=function(text){this.name=text;};
    4. varHuman=newFunction();//是Function而不是function
    5. Human.prototype=o;
    6. vartt=newHuman();
使用prototype与apply实现类继承的模拟。用prototype把父类的公有方法与公有变量加入到子类中去。在子类构造方法中,用apply执行父类的构造方法。
  1. functionParent()
  2. {  //父类
  3. this.pname="parentName";//父类公有变量
  4. this.say=function(){alert(this.pname)};//父类公有方法
  5. this.tell=function(){alert(this.pname+"tell")};//父类公有方法
  6. }
  7. functionSon()
  8. { 
  9. //以下两句要先执行,不然不能完成方法覆盖
  10. Son.prototype=newParent();//得到父类的公有变量与公有方法 
  11. Parent.apply(this);//调用父类的构造函数
  12. this.sname="sonName";//子类公有变量
  13. this.say=function(){alert(this.sname)};//子类公有方法,覆盖了父类的say方法
  14. this.talk=function(){alert(this.sname+"talk")};//子类公有方法
  15. }
用js实现自已定义的类体系
  1. varPerson={//定义名为Person的类
  2. Create:function(name,age){//Create指明构造函数
  3. this.name=name;//定义类公有变量
  4. this.age=age;//定义类公有变量
  5. },
  6. SayHello:function(){//定义公有方法
  7. alert("Hello,I'm"+this.name);
  8. },
  9. HowOld:function(){//定义公有方法
  10. alert(this.name+"is"+this.age+"yearsold.");
  11. }
  12. };
  13. functionFun(){Person.Create("dd","ss");};//定义了一个名为Fun的函数,
  14. Fun.prototype=Person;//让Fun拥有Person类的成员
  15. //一旦执行了Fun函数,就执行了Person.Create方法,
  16. //Person.Create方法一执行,Person就有了公有变量name与age
  17. //当Person有了公有变量时,由于Fun中有Person类成员,因此Fun也就有了name变量
  18. //与age变量。
  19. varp=newFun();
  20. p.SayHello();//显示“Hello,I'mdd”,这表明了p具有了变量name与age.
新的基本对象创建

  1. varTObject={
  2. IsA:function(aType)
  3. {
  4. varself=this;
  5. if(self.Type==aType)
  6. returntrue;
  7. self=self.Type;
  8. while(self)
  9. {
  10. if(self.ParentType==aType)
  11. returntrue;
  12. self=self.ParentType;
  13. };
  14. returnfalse;
  15. }
  16. };
  17. functionClass(aBaseClass,aClassDefine)
  18. {
  19. functionclass_()
  20. {
  21. this.ParentType=aBaseClass;
  22. for(varmemberinaClassDefine)
  23. this[member]=aClassDefine[member];
  24. };
  25. class_.prototype=aBaseClass;
  26. returnnewclass_();
  27. };
  28. functionNew(aClass,aParams)
  29. {
  30. functionnew_()
  31. {
  32. this.Type=aClass;
  33. if(aClass.create)
  34. aClass.create.apply(this,aParams);
  35. };
  36. new_.prototype=aClass;
  37. returnnewnew_();
  38. };
  39. Person2=Class(TObject,{
  40. T2:'sdfsd',
  41. create:function(name,age)
  42. {
  43. this.name=name;
  44. this.age=age;
  45. },
  46. sayHello:function()
  47. {
  48. alert(this.name+''+this.age);
  49. }
  50. });
分享到:
评论

相关推荐

    JavaScript之Date对象(源代码)

    JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象...

    JavaScript之Math对象(源代码)

    JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...

    javascript创建对象的方式(二)

    这篇博客“javascript创建对象的方式(二)”可能详细介绍了在JavaScript中除了最基础的字面量语法之外的其他创建对象的方法。这里我们将深入探讨几种常见的创建对象的方式。 1. **构造函数**: JavaScript中的...

    javascript对象创建

    这个文件可能包含了一些示例代码,用于演示上述的JavaScript对象创建、类定义和继承的实践。通过查看和运行这些代码,你可以更好地理解这些概念并应用到实际项目中。 总结来说,JavaScript对象创建涉及字面量、构造...

    javascript创建对象的方式(三)

    本文将详细探讨三种主要的创建JavaScript对象的方法,并结合“源码”与“工具”的概念,来深入理解这些方式在实际开发中的应用。 一、字面量(Literal)方式 这是最简单直接的对象创建方式,通过大括号 `{}` 将属性...

    JavaScript对象定义

    JavaScript对象定义是编程语言中的核心概念,它在Web开发中起着至关重要的作用。JavaScript是一种基于原型的对象导向语言...通过持续学习和实践,开发者可以充分利用JavaScript的面向对象特性,构建复杂的Web应用程序。

    在javascript中创建对象的各种模式解析

    JavaScript中创建对象最直接的方法是使用对象字面量,或者通过new关键字结合构造函数来创建实例。对象字面量允许直接定义一个对象的属性和方法,而new关键字则是用来根据构造函数创建一个新的对象实例,将构造函数中...

    JavaScript_创建和共享源代码的美丽图像.zip

    "JavaScript_创建和共享源代码的美丽图像.zip"这个压缩包可能包含了一个工具或教程,用于将JavaScript源代码转化为美观的图像。这种功能在分享代码片段、教学或者在社交媒体上展示代码时非常有用,因为有时文字格式...

    JavaScript学习指南 源代码

    本“JavaScript学习指南”源代码包含了深入理解并掌握JavaScript编程的关键知识点。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、...

    javascript创建对象的方式(一)

    上述代码创建了一个名为person的对象,包含name和age属性,以及一个sayHello方法。 2. **构造函数(Constructor)方式**: JavaScript的构造函数是一种特殊的方法,用于创建和初始化对象。使用`new`关键字调用...

    javaScript对象代码及素材

    在这个“JavaScript对象代码及素材”压缩包中,我们很可能会找到与JavaScript对象相关的代码示例和相关学习资料。 JavaScript对象是语言的核心特性,它们用于存储和组织数据。在JavaScript中,对象是一组键值对...

    javascript学习资料(ppt+代码)

    在“javascript学习资料(ppt+代码)”这个压缩包中,我们可以期待找到一系列关于JavaScript的学习资源,包括PPT演示文稿和实际的代码示例。PPT通常会包含JavaScript的基础概念、语法特性、函数、对象、数组、循环、...

    JavaScript面向对象编程指南.pdf

    JavaScript面向对象编程是指在JavaScript语言中使用面向对象的方法来编写程序。JavaScript是一种高级的、解释型的编程语言,它支持面向对象的编程范式,允许开发者创建对象、使用继承和多态等面向对象的特性。以下是...

    JavaScript 全部实例代码

    总之,“JavaScript全部实例代码”提供了学习和实践JavaScript语法和函数的丰富资源。通过深入研究和运行这些实例,你不仅可以提升对JavaScript的理解,还能提升实际开发技能,为成为一名出色的网页开发者做好准备。...

    javascript 400 常用 实例 特效 源代码

    6. **内部对象**:JavaScript内置了许多对象,如Date对象用于处理日期和时间,Math对象提供数学运算功能,Array对象提供数组操作方法等。熟练掌握这些内部对象,能极大地提高编程效率。 7. **综合实例**:压缩包中...

    JavaScript实战 源代码

    5. **对象与原型**:理解JavaScript中的对象创建和原型继承机制,以及如何使用构造函数和原型链来实现面向对象编程。 6. **DOM操作**:学习如何通过JavaScript与HTML元素交互,添加、删除和修改DOM节点,以及监听和...

    jQuery与JavaScript节点创建方法的对比.docx

    总的来说,jQuery 的节点创建方法适合快速开发和简化代码,而 JavaScript 的原生方法在性能上有优势,适用于对效率有较高要求的场景。在实际开发中,开发者可以根据项目需求和团队习惯选择合适的方法。 此外,了解...

    javascript对象的创建和访问_.docx

    创建JavaScript对象主要有三种方式: 1. **对象字面量**: ```javascript var foo = {}; foo.prop_1 = 'bar'; foo.prop_2 = false; foo.prop_3 = function() { return 'hello world'; } ``` 上述代码中,`...

    javascript面向对象编程.pdf

    其对象构造器和方法的创建,以及对对象属性的存取方式,都体现出其独特性。例如,一个课程(Lecture)对象构造器,它接收两个字符串参数作为课程名称和教师名称,并将它们保存为对象的本地属性。同时,通过Lecture...

    Javascript动态网页编程源代码

    5. **第16章**和**第19章**:可能涉及到JavaScript的面向对象编程,讲解如何定义类、创建对象以及继承机制,这对于构建复杂的应用程序非常有用。 6. **第28章**:可能涵盖了错误处理和调试技巧,这对于编写健壮的...

Global site tag (gtag.js) - Google Analytics