js模拟类的创建以及继承

<html>

<body>

<script>
    //js模拟类的创建以及继承
    
    //第一步:创建父类
        function Parent(name){
            this.name = name;
        }
        //给父类添加属性方法
        Parent.prototype.age = 18;
        //var p1 = new Parent();
    //第二步:创建子类    
        function Child(){
            Parent.call(this,"asdfasfd");
            
        }
        
        //第三步:确定继承的关系
        
        Child.prototype = Object.create(Parent.prototype);
        
        Child.prototype.stuno = "2000";
        
        //第四步:改造构造器(不是很重要)
        //改变了某个构造器的原型之后,紧接着的代码一定是改构造器
        Child.prototype.constructor = Child;
        /* Object.create的实现
        function create(proto){
            function F(){
            
            
            }
            F.prototype = proto;
            var temp = new F();
            return temp;
        }
        
        */
        //var o = new Parent();
        //o instanceof Object;
        
        
        //constructor
        
        
    </script>
</body>

</html>

时间: 2024-10-08 16:27:58

js模拟类的创建以及继承的相关文章

js模拟类

ECMAScript6已经支持了class,但之前版本都不支持类,但是可以通过一些方法来模拟类. js中的类,既是重点,也是难点,很多时候都感觉模棱两可. 首先强调一下js中很重要的3个知识点:this.prototype.constructor. 下面我们来总结一下定义(模拟)类的几种方法: 1.工厂模式 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function createObject(name,age){   var obj = new Objec

js模拟类的继承

var object = {   //定义object基本类,用于实现最基础的方法和属性 isA: function(type){ var self = this; while(self){ if(self == type){ return true; } self = self.Type; }; return false; }, name: 'object' } function Class(baseClass, defineClass){ //创建类的函数,用于声明类及继承的关系 funct

JS模拟类继承

//最后一个参数是JSON表示的类定义 //如果参数大于一,则第一个参数是基类,否则,基类是object //中间的参数是类实现的接口 //返回值是类,类是一个构造函数,并继承了基类的prototype function Class(){ aDefine = arguments[arguments.length - 1]; //传入的最后一个参数是要定义的类 if(!aDefine) return; //如果没用传参数,则直接结束. var aBase = arguments.length>1?

mootools1.5.1使用笔记:类的创建,继承,为现有类增加新方法

1 window.addEvent('domready',function(){ 2 /* 3 新建一个Person的类,类上有 name属性和sayHello方法: 4 */ 5 var Person= new Class({ 6 initialize: function(name){ 7 this.name = name; 8 }, 9 sayHello:function(){ 10 console.log('hello,my name is '+this.name); 11 } 12 13

线程创建之继承(一)

一.继承实现多线程 Rabit.java package cn.thread; /* * 模拟龟兔赛跑 * 1.创建多线程 继承Thread +重run(线程体) */ public class Rabit extends Thread { @Override public void run() { for(int i=0;i<100;i++) { System.out.println("兔子跑了"+i+"步"); } } } class Tortoise e

JavaScript 高级篇之闭包、模拟类,继承(五)

本篇主要分享我对闭包的理解及使用闭包完成私有属性.模拟类.继承等,结合大量例子,希望大家能快速掌握!首先让我们先从一些基本的术语开始吧 一.javascript中的闭包 1.我们一起先来理解什么是函数的作用域. 2.调用的对象 结合例子: 复制代码 代码如下: function display(something) { function executeDisplay1() { document.write("我在帮老板打印:"+something+"<br />&

【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

一.简介 Lua是一门非常强大.非常灵活的脚本语言,自它从发明以来,无数的游戏使用了Lua作为开发语言.但是作为一款脚本语言,Lua也有着自己的不足,那就是它本身并没有提供面向对象的特性,而游戏开发是一项庞大复杂的工程,如果没有面向对象功能势必会为开发带来一定的不便.不过幸好Lua中有table这样强大的数据结构,利用它再结合元表(metatable),我们便可以很方便地在Lua中模拟出类.继承和多态等面向对象编程具有的特性. 二.前提知识 按照惯例,我们还是先来熟悉一下必要的前提知识,以便方便

js 对象创建及其继承的方法

重新看红皮书,觉得很多知识多看几遍确实是能看的更明白些.今天重温了一下对象创建和继承,就稍微记下来,巩固一下. js是面向对象的编程语言,ECMA-262吧对象定义为:“无序属性的集合,其属性可以包含基本值,对象或者函数”.每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型,也可以是自定义的. 一,讲讲创建对象的几个方法 1. var person = new Object(); 2. var person = {}; 3. 工厂模式 4. 构造函数模式 5. 原型模式 6. 组合使

python3 速查参考- python基础 8 -&gt; 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)

基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self.name = name def __del__(self): # 函数属性:析构函数 print("goodbey ", self.name) I1 = C1('bob') #-- Python的类没有基于参数的函数重载 class FirstClass: def test(self,