JS基于原型的继承

function Person(name , age){
this.name = name;
this.age = age;
}
Person.prototype.hi = function(){
console.log("hi my neame is "+this.name+" , I‘m "+ this.age+" years old!");
}
Person.prototype.LEG_NUM = 2;
Person.prototype.ARAMS_NUM = 2;
Person.prototype.walk = function(){
console.log(this.name + "is working!");
}
function Student(name , age , className){
Person.call(this , name , age);
this.className = className;
}
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
Student.prototype.hi = function(){
console.log("hi my name is "+ this.name +" , I‘m "+ this.age+" years old and from "+ this.className);
}
Student.prototype.learn = function(subject){
console.log(this.name + " is learning " + subject +" at " + this.className);
}
//test
var bbedword = new Student("bbedword" , 25 , "××大学,计算机科学与技术(4)班");
bbedword.hi();
bbedword.LEG_NUM;
bbedword.ARAMS_NUM;
bbedword.walk();
bbedword.learn("前端开发JS");

运行结果如下:

来源于慕课网学习!!!

时间: 2024-10-08 21:59:49

JS基于原型的继承的相关文章

怎么理解js的原型链继承?

前言 了解java等面向对象语言的童鞋应该知道.面向对象的三大特性就是:封装,继承,多态. 今天,我们就来聊一聊继承.但是,注意,我们现在说的是js的继承. 在js的es6语法出来之前,我们想实现js的继承关系,需要借助于原型链.之前的文章,我有讲过原型和原型链的概念.在这,再重新回顾一下. js中万物皆对象,每个对象都有一个隐式原型 __proto__ ,指向创建它的构造函数的原型对象. 函数(构造函数)除了有一个隐式原型对象,还有一个属性prototype,它指向一个对象,这个对象就是原型对

JavaScript基于原型的继承

在一个纯粹的原型模式中,我们会摒弃类,转而专注于对象,基于原型的继承相比基于类的继承的概念上更为简单 if( typeof Object.beget !== 'function') { Object.beget = function(o) { var F = function() {}; F.prototype = o; return new F(); } } var myMammal = { name : 'Herb the Mammal', get_name : function() { r

【学习笔记】JS基于原型的面向对象

/*|------------------------------------------------------| *|--js是基于原型prototype而不是类class的面相对象语言----| *|--js只有对象和对象的实例,没有class-------------------| *|--Z_LY-2015-11-15-------------------------------------| *|--------------------------------------------

破解 JS(原型)继承

总体分为四大类:利用空对象作为中介继承.Object.create 继承.setPrototypeOf 继承.拷贝继承 function Animal(name, age) { this.name = name; this.age = age; } Animal.prototype = { speak: function() { console.log('my name is ' + this.name); } } function Cat() { Animal.apply(this, argu

关于JS的原型与继承笔记

1.什么是原型? 原型就是公用的方法或者属性. 1.prototype本质上还是一个JavaScript对象: 2.每个函数都有一个默认的属性prototype,而这个prototype的constructor默认指向这个函数 3.通过prototype我们可以扩展Javascript的内建对象: 原型的属性和方法是被共享的 只要原型上的属性或者方法被改了, 实例上的也会发生改变; 2.prototype与constructor 其实在JS中构造器就是函数,函数就是构造器,对象实例就是通过var

js之原型链&继承

首先来总结一下自己对原型链的的理解,直白的说就是 为实例对象查找方法属性提供一个桥梁,在原型链中,__proto__是至关重要的东西,上图: 继承,说白了就是继承父组件的属性,方法 继承属性可以使用Father.call(this,name,age,..)来实现 继承方法就不行了,得使用原型对象的查找机制 发不多说,上代码 function Father(uname,uage) { this.name = uname this.age = uage } Father.prototype.mone

js基于伪装的继承call()方法和apply()方法

function class1() { this.name = function(){ alert("class1的方法name()"); } } function class2() { class1.call(this);//要想实现class2继承class1 this就是当前对象class2. } 现在可以知道是否实现继承了: var cl = new class2(); cl.name();//class2继承了class1,class2是父类.调用父类的方法 注意到,call

深刻理解JavaScript基于原型的面向对象

主题一.原型 一.基于原型的语言的特点 1 只有对象,没有类;对象继承对象,而不是类继承类. 2  "原型对象"是基于原型语言的核心概念.原型对象是新对象的模板,它将自身的属性共享给新对象.一个对象不但可以享有自己创建时和运行时定义的属性,而且可以享有原型对象的属性. 3 除了语言原生的顶级对象,每一个对象都有自己的原型对象,所有对象构成一个树状的层级系统.root节点的顶层对象是一个语言原生的对象,其他所有对象都直接或间接继承它的属性. 显然,基于原型的语言比基于类的语言简单得多,我

深入浅出JavaScript之原型链&继承

Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承. 这部分知识也是JavaScript里的核心重点之一,同时也是一个难点.我把学习笔记整理了一下,方便大家学习,同时自己也加深印象.这部分代码的细节很多,需要反复推敲.那我们就开始吧. 小试身手 原型链