javascript 实现继承

本文记录 prototype constructor  实现javascript继承。

//1:object 对象
//2:function 对象
//2:function Prototype 模式
//拷贝,深拷贝和浅拷贝
//prototype constructor 方式 ,改变原型,定向构造函数

直接上代码,

<html>
<head>
  <meta charset="utf-8" />
  <title>JS OO</title>
  <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta content="telephone=no" name="format-detection" />
  <meta name="apple-mobile-web-app-capable" content="yes" />
</head>
<body>  

    <script>
        //1:object 对象
        //2:function 对象
        //2:function Prototype 模式
        //拷贝,深拷贝和浅拷贝
        //prototype constructor 方式 ,改变原型,定向构造函数

        function person(name,sex){
            this.name=name;
            this.sex= sex;
        }
        person.constructor={};
        person.prototype={
            getName:function(){
                return this.name;
            },
            getSex:function(){
                return this.sex;
            },
            age:19
        }
        //哪国人对象
        function nationer(name,sex,nation){
            this.name=name;
            this.sex=sex;
            this.nation=nation;
        }
        nationer.prototype=new person();
        nationer.prototype.constructor=nationer;
        nationer.prototype.getNation=function(){
            return this.nation;
        }
        //哪国哪省人
        function proviceor(name,sex,nation,provice){
            this.name=name;
            this.sex=sex;
            this.nation=nation;
            this.provice=provice;
        }
        proviceor.prototype=new nationer();
        proviceor.prototype.constructor=proviceor;
        proviceor.prototype.getProvice=function(){
            return this.provice;
        }

        var hb = new proviceor(‘zc‘,‘male‘,‘china‘,‘hb‘);
    </script>
</body>
</html>

结构:

作者:zc

出处:http://www.cnblogs.com/jmzs/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2024-08-07 21:20:13

javascript 实现继承的相关文章

javascript类继承

function extend(subClass, superClass) { var f = function() {}; f.prototype = superClass.prototype; subClass.prototype = new f(); subClass.superClass = superClass.prototype; } var parent = function (name, age) { this._name = name; this._age = age; };

javascript深度克隆与javascript的继承实现

1.javascript深度克隆: //注意这里的对象包括object和array function cloneObject(obj){ var o = obj.constructor === Array ? [] : {}; for(var key in obj){ if(obj.hasOwnProperty(key)){ o[key] = typeof obj[key] === "object" ? cloneObject(obj[key]) : obj[key]; } } ret

JavaScript原型继承的陷阱

JavaScript原型继承的陷阱 JavaScript默认采用原型继承.虽然没有类(class)的概念,它的函数(function)可以充当构造器(constructor).构造器结合this,new可以构建出类似Java的类.因此,JavaScript通过扩展自身能模拟类式(class-based)继承. JavaScript和其它面向对象语言一样,对象类型采用引用方式.持有对象的变量只是一个地址,而基本类型数据是值.当原型上存储对象时,就可能有一些陷阱. 先看第一个例子 var creat

浅话javascript的继承

javascript的继承和java或C#的继承是不一样的,后者是基于类的继承,而javascript是通过原型来继承的.所以,先得理一理原型是个什么鬼. 当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样一些代码:this.prototype={constructor:this},新对象被赋予prototype这样一个属性,它的值是一个包含constructor属性的对象.可以看出,这个constructor指向新对象本身.prototype属性指向的对象自然不会只有c

[JavaScript原型继承理解一]

转:http://www.cnblogs.com/harolei/p/3740354.html 对于JavaScript的继承和原型链,虽然之前自己看了书也听了session,但还是一直觉得云里雾里,不禁感叹JavaScript真是一门神奇的语言.这次经过Sponsor的一对一辅导和自己回来后反复思考,总算觉得把其中的精妙领悟一二了. 1. JavaScript创建对象 在面向对象语言中,通常通过定义类然后再进行实例化来创建多个具有相同属性和方法的对象.但是在JavaScript中并没有类的概念

[ JavaScript ] JavaScript 实现继承.

对于javascript中的继承,由于js中没有后端语言中的类式继承,所以js中的继承,一般都是原型继承(prototype). function P (name){ this.name = name; this.say = function(){ console.log('p'); } } function S (name,id){ this.id = id; this.eat = function(){ console.log('s'); } } S.prototype = P.protot

JavaScript组合继承的一点思考

今天看<JavaScript高级程序设计>一书中关于组合继承模式时,书上有这么一个Demo程序: <html> <head> </head> <body> <script> function SuperType(name){ this.name = name; } SuperType.prototype.sayName = function(){ alert(this.name); }; function SubType(name,

Javascript 进阶 继承

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/29194261 1.基于类的继承 下面看下面的代码: <script type="text/javascript"> function Person(name, age) { this.name = name; this.age = age; } Person.prototype.say = function () { console.log(this.na

javascript实现继承的方式

this this表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window: 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用. 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向. 先看一个在全局作用范围内使用this的例子: <script type="text/javascript"> console.log(this === window);  // true console.log(w

JavaScript实现继承总结

原型链 function SuperType(){     this.property="SuperType_true"; } SuperType.prototype.getSuperValue=function(){     return this.property; }; function SubType(){     this.subproperty="SubType_false"; } SubType.prototype=new SuperType(); S