`
johnnywww
  • 浏览: 20349 次
  • 性别: 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对象创建

    文章《javascript对象创建--类、继承》源码

    JavaScript学习资料JavaScript基础语法函数及相关源代码资料.zip

    JavaScript学习资料JavaScript基础语法函数及相关源代码资料: BOM基础.pdf BOM基础(源代码).zip Date对象之获取和设置月份-getMonth&setMonth(教辅).pdf DOM事件总结(教辅).pdf DOM事件(ppt).pdf JavaScripr...

    浅析创建javascript对象的方法_.docx

    浅析创建javascript对象的方法_.docx

    javascript常用对象及方法

    javascript常用对象及方法 javascript常用对象及方法

    Javascript创建自定义对象 创建Object实例添加属性和方法

    如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员

    JavaScript对象创建的九种方式

    JavaScript对象创建的九种方式

    html css JavaScript 学习留下的代码.zip

    html css JavaScript 学习留下的代码html css JavaScript 学习留下的代码 html css JavaScript 学习留下的代码html css JavaScript 学习留下的代码 html css JavaScript 学习留下的代码html css JavaScript 学习留下...

    学习JavaScript所写的笔记和代码示例

    学习JavaScript所写的笔记和代码示例。学习JavaScript所写的笔记和代码示例。学习JavaScript所写的笔记和代码示例。学习JavaScript所写的笔记和代码示例。学习JavaScript所写的笔记和代码示例。学习JavaScript所写的...

    HTML CSS and Javascript 基础学习代码.zip

    HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 ...

    javascript创建对象的方式(二)

    NULL 博文链接:https://redhacker.iteye.com/blog/1457293

    javaScript对象代码及素材

    javaScript对象代码及素材 php javaScript对象代码及素材

    JavaScript学习指南 源代码

    JavaScript学习指南 源代码

    html+css+JavaScript的学习代码.zip

    html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的学习代码html+css+JavaScript的学习代码 html+css+JavaScript的...

    JavaScript完全学习手册

    资源名称:Javascript完全学习手册内容简介:本书分4篇14章,介绍Javascript的知识,全书内容包括:Javascript语法基础、流程控制、函数、内置对象编程、文档对象模型DOM与事件驱动、处理XML、...

    学习21天学通HTML+CSS+JavaScript Web开发笔记和源代码.zip

    学习21天学通HTML+CSS+JavaScript Web开发笔记和源代码 学习21天学通HTML+CSS+JavaScript Web开发笔记和源代码 学习21天学通HTML+CSS+JavaScript Web开发笔记和源代码 学习21天学通HTML+CSS+JavaScript Web开发笔记...

    JavaScript面向对象编程指南

    如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。, 《JavaScript面向对象编程指南》着重介绍...

    JavaScript面向对象编程指南.pdf

    如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。 《JavaScript面向对象编程指南》着重介绍...

Global site tag (gtag.js) - Google Analytics