`
caibinghong
  • 浏览: 143278 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

javascript 面向对象写法

 
阅读更多

//原型方法
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

    JavaScript面向对象基础PPT,讲述了何谓面向对象、面向对象特点、组成及写法、工厂模式、原型以及如何将普通面向过程的代码转换为面向对象的基本原则

    选项卡改变为面向对象写法后,复用和增加方法.md

    面向对象写的一个点击选项卡,复用这个面向对象写法,同时为不同的添加不一样的方法

    MooCSS模块化面向对象的css写法

    Moo-CSS 模块化面向对象的css写法

    讲解JavaScript的面向对象的编程

    本人一行注释一行代码翻译了该大师的艺术作品--目的说明它是在第1,2阶段文档演示的JavaScript面向对象的书写方式的进一步改进,它是现代JavaScript面向对象编程方式(使用基本类来编码)的过渡代码--没有它就没有当今...

    js面向对象的写法

    主要介绍了四种js面向对象的常见写法,还介绍了有关this的相关内容,感兴趣的小伙伴们可以参考一下

    简单的选项卡改变为面向对象的写法的一点学习经验总结.md

    写选项卡的时候,要改变为面向对象的写法,面向兑现的写法更容易扩展或者维护,这里是文章的Markdown文档,需要的可以下载浏览,如有错误,欢迎指出 谢谢

    JavaScript 面向对象代码实践

    JavaScript面向对象代码的写法与其它常见语言(Java C# C++)几乎完全不同。

    JavaScript面向对象编写购物车功能

    之前的项目中需要一个购买数据商品并付款的功能,刚开始一直不敢使用面向对象的写法,主要是没有理清思路,而且那时的数据商品比较的复杂,就一直没敢动,在网上也找些面向对象的写法,把思路理清一遍,就想自己试着...

    JavaScript类的写法

    早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成类。 在js中,写成类的本质基本都是 构造函数+原型。下面,就讨论一下js类的几种写法...

    JavaScript面向对象分层思维全面解析

    但在javascript里面多态的概念是不存在,而继承由于web页面的必须先下载js在运行导致js的继承不能像后台那么灵活而且js没有重载以及重写不方便(而且js中重写的意义不是很大),所以在js中很少用到面向对象,可能在一些...

    javascript中的面向对象

    相信大家对javascript中的面向对象写法都不陌生,那还记得有几种创建对象的写法吗?相信大家除了自己常写的都有点模糊了,那接下来就由我来帮大家回忆回忆吧! 1. 构造函数模式 通过创建自定义的构造函数,来定义...

    Javascript 面向对象 对象(Object)

    javascript中的对象创建声明: var obj = {}; 或者 var obj = new Object(); 为对象加入属性,方法: //=====第一种写法==================================== obj.name = ‘小明’; //为对象加属性 obj.updateName...

    javascript从入门到高级教程,PPT2007格式.rar

    需要office2007才能打开,或者使用office2003兼容2007包,本课程分了两段,第一部分是javascript入门基础和中级教程,后面是高级,讲到了javascript的作用域链和原型链,以及javascript面向对象的继承写法,...

    前端领域,使用JavaScript原生写法实现在两个数值范围内生成n 个随机且不重复的整数

    它支持面向对象编程,并可以与其他技术(如Ajax和Web API)一起使用,以实现更复杂的功能,如实时更新内容、响应用户操作和创建交互式网页游戏。 在2019年,JavaScript的使用已经非常广泛,不仅在浏览器中运行,还...

    包含javascript的基础语法,面向对象的实现和设计模式实现

    Javascript代码 其中很多都是伪代码的写法

    非常好的javascript原理资源,分享出来.zip

    面向对象的实现 设计模式实现 模块化开 javascript 常见的疑问 jQuery NodeJs html5 Javascript based 1.对象 JavaScript 引用 2.JavaScript this 3.JavaScript 闭包 4.JavaScript 事件 5.javascript 跨域 6....

    javascript 单例模式演示代码 javascript面向对象编程

    js的单例写法 JS单例模式 div{height:100px; width:100px; background:#CCC; border:#000 1px solid;} 你是?(单例) 你是?(普通) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] loop.js是一个单例模式的...

    JavaScript面向对象的两种书写方法以及差别

    javascript中的对象JS作为一种动态语言,在语法上有相当大的自由度,所以造成了一种功能,有N种写法的局面。 在JS中实现OOP,一般来说有两种方法: 第一种:使用this关键字 function Class1() { this.onclick = ...

    【JavaScript源代码】ES6中的类(Class)示例详解.docx

     ES6提供了更接近面向对象(注意:javascript本质上是基于对象的语言)语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 基本上,ES6的class可以看作只是一个语法糖,它的绝...

    Javascript 面向对象(一)(共有方法,私有方法,特权方法)

    私有方法写法: 代码如下: function myClass () { var private_attribute = initial_value; function private_method () { } var private_method2 = function () { } } 实例showpet()就是一个私有方法 代码如下: ...

Global site tag (gtag.js) - Google Analytics