function BaseClass()
{
    this.Id=0;
    this.Name="testName";
}
function NewClass()
{
    var Base_Class=new BaseClass();
    Base_Class.Id=1;
    Base_Class.Name="NewName";
    alert(Base_Class.Id);
}

解决方案 »

  1.   

    function Test()
    {
      this.id=1;
      this.name="lihan";
    }
    alert(Test.id);
      

  2.   

    http://www.cnblogs.com/lucas/archive/2009/03/14/1411322.html
      

  3.   

    JAVASCRIPT的承继方有很多种呀.像有prototype、call、apply等方法。
      

  4.   

    我以前学习时候从书上上改了点的例子希望对你有所帮助
    ,需要详细情况可以参考javascript高级程序设计那本书
    下载地址http://www.51leifeng.net/viewthread.php?tid=12109&extra=&page=1
    好像有高清晰的自己找找吧<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <SCRIPT LANGUAGE="JavaScript">
      <!--
        //创建连接一个字符串父类
    function StringBuffer()
    {
        //私有属性 _strings
    this._strings= new Array;
    }
    //以下为StringBuffer类2个方法
        StringBuffer.prototype.append = function (str)
    {
        this._strings.push(str);
    }
    StringBuffer.prototype.toString = function(){
        return  this._strings.join('');
    } //子类
    function StringBufferA()
    {
    }
    //继承父类所有属性与方法
    StringBufferA.prototype = new StringBuffer();
    //复写父类方法toString
    StringBufferA.prototype.toString = function(type){
        return  this._strings.join(type);
    } //测试代码
    function test()
    {
        //基类
        var buffer = new StringBuffer();
    buffer.append("Hello");
    buffer.append("World");
    var result = buffer.toString();
    alert(result);
    //继承类
    var bufferA = new StringBufferA();
    bufferA.append("Hello");
    bufferA.append("World");
    var resultA = bufferA.toString('--------');
    alert(resultA);
    }
    window.onload=test;
      //-->
      </SCRIPT>
     </HEAD> <BODY>
      
     </BODY>
    </HTML>
      

  5.   

    我做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处。 javascript 是基于对象的语言,为什么这么说呢,需要仔细思考。 js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质,不管方法如何我们都能很好的理解,可以比较各自的优缺点,在使用上各自的长处和短处。 一般object orentid language 具有以下5个特点: 
    1 封装 2 继承 3 多态 4 聚集 5 重载 javascript这些方面是怎么样实现的呢? 首先得了解什么叫对象,javascript 中对象分三类: 1 本地对象,即 
    javascript本身自带的对象,如javascript所有的引用类型,String Number Boolean  Object Function Date Array RegExp Error...,这里有必要说一下javascript 的原型(primitive) 注意原型对象和他们的包装类(wrapper)(为引用对象)之间的区别和联系  他们有 string number boolean null undefined(有必要搞清楚这些基本的东东的用法和注意点哦,细节决定成败!) 。 
    javascript 语言和java一样都是 单根继承 ,所有javascript中所有的对象都继承自Object ,特别注意Function 也是的哦 2 内置对象 有Global 和 Math 两个 3 宿主对象 
       包括 bom 和 dom 中的对象 
    注意点 : 
    1 javascript 是弱语言(早期绑定和动态绑定),声明变量不需要指定对象类型(展开我们的想象,我认为我们对比到java的“RTTI机制”以及“反射机制”),弱我们可以理解为宽松,宽松必然导致灵活,在javascript中 我们定义类是非常方便的,我们看不到像java一样的很多的class文件。 
        javascript的基础:动态语言 弱类型(动态类型) 解释型,理解到位水平就很不错了,只需要这三个词哦. 
        早期绑定是指在对象被实例化之前对象的属性和方法已经被定义,使得编译器或解释器能够提前编译机器码。Java和VB支持这种特性,但ECMAScript 并非强类型,不支持早期绑定。 
        动态绑定是指编译器或解释器在运行时才知道该对象的具体类型,之前并不会检查,只会判断这些属性和方法是否得到该对象的支持。ECMAScript对所有的变量使用动态绑定。 
    2 javascript 对象没有方法或者函数的概念 因为所有javascript的方法 我们都可以理解成属性 作为指针指向内存中的无名函数体(function定义的)如: 
    Java代码 
    function Person (name ){   
     this.name=name;   
     this.showName= function (){alert(this.name);}   
    }//showName运行时 对象创建 showName属性指向匿名函数对象:function (){alert(this.name);}  function Person (name ){
     this.name=name;
     this.showName= function (){alert(this.name);}
    }//showName运行时 对象创建 showName属性指向匿名函数对象:function (){alert(this.name);}或者指向已命名的函数对象,如: 
    Java代码 
    function Person (name ){   
     this.name=name;   
     this.showName= showName;   
    }   
    function showName(){alert(this.name);}   function Person (name ){
     this.name=name;
     this.showName= showName;
    }
    function showName(){alert(this.name);} //当然上面我只是简单举了2个例子,但是原理却是这样的。其实这里this.showName= showName 的showName 也是指向函数对象的指针,这样表示2指针指向了同一函数对象 
    所以针对javascript的反射 我们也很好解释为什么只需要用fot in 如: Java代码 
    var person = new Person("jianfeng008cn");   
      
    for(var property in person){   
      
        alert("key:"+ property +"==>值:" + person[property]);   
      
    }  var person = new Person("jianfeng008cn");for(var property in person){    alert("key:"+ property +"==>值:" + person[property]);}
    3 javascript 是解释型语言 对象的层面上 我们可以这样理解  对象的生产的过程 我们可以看成该对象(比如说看成一段json格式的字符串)传给了javascript解释器 ,然后 解释器 如果有构造函数则执行该对象的构造函数,使指针属性指向函数对象(真正执行的时候才去判断内存中有没有,没有再生成)。 
    这个特点导致两方面我们需要特别注意: 
    1 javascript语言的特性我们需要从“运行时”这个角度来考虑,要有“时间轴”的概念 
    2 所以很多时候我们需要考虑:有时候同样的一段代码,上下两句的位置变化效果很是不同,一般都可以从解释型语言的对象的属性覆盖方面去考虑(试着比较就近原则)。 
      

  6.   

    楼主要区分清Java和JavaScript啊!!!
    JavaScript中的函数就起着类的作用。
    把一个函数名赋值给一个对象的属性就算是定义方法了。
    (注意是函数名,不带括号!!!,至于函数在哪定义就无所谓了,构造函数内外均可。)
    可以通过给原型Prototype添加属性来模拟继承。