//原型方法
function ClassA(){
}
ClassA.prototype = {
color:'red',
sayColor: function (){
alert(this.color);
}
}
function ClassB(){
this.name = "";
this.sayName = function(){
alert(this.name);
}
}
ClassB.prototype = new ClassA();
var objA = new ClassA();
var objB = new ClassB();
objA.color = 'red';
objB.color = 'blue';
objB.name = 'caibinghong';
objA.sayColor();
objB.sayColor();// b类通过原型的方法 继承 A 类
objB.sayName();
//对象冒充 方法实继承
function person(){
this.name = 'person';
this.getName = function(){
alert(this.name);
}
}
function worker(name,age){
//对象冒充继承
this.constructor = person;
this.constructor(name);
delete this.constructor;
this.name = name||'caibinghong';
this.age = age||'2012';
this.getAge = function(){
alert(this.age);
}
}
var man = new person();
var xiaofan = new worker('xiaofan',28);
man.getName();
xiaofan.getName();
xiaofan.getAge();
// call 方法实继承
var ClassC = function(sColor,tt){
this.color = sColor;
this.tt = tt;
this.sayColor = function (){
alert(this.color+this.tt);
}
}
var ClassD = function(sColor,sName){
ClassC.call(this,sColor,sName);//call 方法继承 传参 只能 以逗号隔开
this.name = sName;
this.sayName = function(){
alert(this.name);
}
}
var objC = new ClassC('___red','_cc : call 方法 传参 只能 以逗号隔开');
var objD = new ClassD('___blue','___D_caibinghong : call 方法 传参 只能 以逗号隔开');
objC.sayColor();
objD.sayColor();
objD.sayName();
// apply 方法实继承
var ClassE = function(sColor,tt){
this.color = sColor;
this.tt = tt;
this.sayColor = function (){
alert(this.color+this.tt);
}
}
var ClassF = function(sColor,sName){
ClassE.apply(this,[sColor,sName]);//apply 方法继承 传参 只能数组
this.name = sName;
this.sayName = function(){
alert(this.name);
}
}
var objE = new ClassC('___red','____ee : apply 方法 传参 只能数组');
var objF = new ClassD('___blue','___F_caibinghong : apply 方法 传参 只能数组');
objE.sayColor();
objF.sayColor();
objF.sayName();
//根据上面的几种方法,下面来整合一下.
var fdauto = function (age){
this.age = age;
}
fdauto.prototype = {
getAge:function (){
alert(this.age);
}
}
var fdAm = function (age,name){
fdauto.call(this,age);//构造??
this.name = name;
}
fdAm.prototype = new fdauto();//继承?? 这里有点不是很明白
fdAm.prototype.getName=function (){
alert(this.name);
};
var _fdauto = new fdauto(12);
var _fdAm = new fdAm(10,'the am of fdauto!!');
_fdauto.getAge();
_fdAm.getAge();
_fdAm.getName();
91百色都市
91环球网
91时尚资讯
分享到:
相关推荐
JavaScript面向对象基础PPT,讲述了何谓面向对象、面向对象特点、组成及写法、工厂模式、原型以及如何将普通面向过程的代码转换为面向对象的基本原则
面向对象写的一个点击选项卡,复用这个面向对象写法,同时为不同的添加不一样的方法
Moo-CSS 模块化面向对象的css写法
本人一行注释一行代码翻译了该大师的艺术作品--目的说明它是在第1,2阶段文档演示的JavaScript面向对象的书写方式的进一步改进,它是现代JavaScript面向对象编程方式(使用基本类来编码)的过渡代码--没有它就没有当今...
主要介绍了四种js面向对象的常见写法,还介绍了有关this的相关内容,感兴趣的小伙伴们可以参考一下
写选项卡的时候,要改变为面向对象的写法,面向兑现的写法更容易扩展或者维护,这里是文章的Markdown文档,需要的可以下载浏览,如有错误,欢迎指出 谢谢
JavaScript面向对象代码的写法与其它常见语言(Java C# C++)几乎完全不同。
之前的项目中需要一个购买数据商品并付款的功能,刚开始一直不敢使用面向对象的写法,主要是没有理清思路,而且那时的数据商品比较的复杂,就一直没敢动,在网上也找些面向对象的写法,把思路理清一遍,就想自己试着...
早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成类。 在js中,写成类的本质基本都是 构造函数+原型。下面,就讨论一下js类的几种写法...
但在javascript里面多态的概念是不存在,而继承由于web页面的必须先下载js在运行导致js的继承不能像后台那么灵活而且js没有重载以及重写不方便(而且js中重写的意义不是很大),所以在js中很少用到面向对象,可能在一些...
相信大家对javascript中的面向对象写法都不陌生,那还记得有几种创建对象的写法吗?相信大家除了自己常写的都有点模糊了,那接下来就由我来帮大家回忆回忆吧! 1. 构造函数模式 通过创建自定义的构造函数,来定义...
javascript中的对象创建声明: var obj = {}; 或者 var obj = new Object(); 为对象加入属性,方法: //=====第一种写法==================================== obj.name = ‘小明’; //为对象加属性 obj.updateName...
需要office2007才能打开,或者使用office2003兼容2007包,本课程分了两段,第一部分是javascript入门基础和中级教程,后面是高级,讲到了javascript的作用域链和原型链,以及javascript面向对象的继承写法,...
它支持面向对象编程,并可以与其他技术(如Ajax和Web API)一起使用,以实现更复杂的功能,如实时更新内容、响应用户操作和创建交互式网页游戏。 在2019年,JavaScript的使用已经非常广泛,不仅在浏览器中运行,还...
Javascript代码 其中很多都是伪代码的写法
面向对象的实现 设计模式实现 模块化开 javascript 常见的疑问 jQuery NodeJs html5 Javascript based 1.对象 JavaScript 引用 2.JavaScript this 3.JavaScript 闭包 4.JavaScript 事件 5.javascript 跨域 6....
js的单例写法 JS单例模式 div{height:100px; width:100px; background:#CCC; border:#000 1px solid;} 你是?(单例) 你是?(普通) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] loop.js是一个单例模式的...
javascript中的对象JS作为一种动态语言,在语法上有相当大的自由度,所以造成了一种功能,有N种写法的局面。 在JS中实现OOP,一般来说有两种方法: 第一种:使用this关键字 function Class1() { this.onclick = ...
ES6提供了更接近面向对象(注意:javascript本质上是基于对象的语言)语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 基本上,ES6的class可以看作只是一个语法糖,它的绝...
私有方法写法: 代码如下: function myClass () { var private_attribute = initial_value; function private_method () { } var private_method2 = function () { } } 实例showpet()就是一个私有方法 代码如下: ...