首页 > web前端 > js教程 > 正文

基于JavaScript 类的使用详解_基础知识

php中文网
发布: 2016-05-16 17:34:31
原创
1386人浏览过

以下为构造函数方法创建类:

复制代码 代码如下:

function className (prop_1, prop_2, prop_3) { 
this.prop1 = prop_1; 
this.prop2 = prop_2; 
this.prop3 = prop_3;}

有了上面的类,我们就可以为类创建实例:
复制代码 代码如下:

var obj_1 = new className(v1, v2, v3)
var obj_2 = new className(v1, v2, v3)

我们也可以给类添加方法(method),其实就是Function里的Function。
复制代码 代码如下:

function className (prop_1, prop_2, prop_3) {
  this.prop1 = prop_1;
  this.prop2 = prop_2;
  this.prop3 = prop_3;
  this.func = function new_meth (property) {
        //coding here
  }
}

属性访问域:

在JavaScript里,对象的属性默认都是全局的,也就是说,对象内外都可以直接访问该属性。上面例子里this.prop1, this.prop2, this.prop3都是全局属性。

如何定义私有属性呢?使用var,下面的例子里,price就变成了私有属性!

复制代码 代码如下:

function Car( listedPrice, color ) {
    var price = listedPrice;
    this.color = color;
    this.honk = function() {
        console.log("BEEP BEEP!!");
    };
}

如果你想访问私有属性,那么你可以在对象内添加一个方法去返回这个私有属性,因为方法在对象内,所以可以访问对象的私有属性。在外部调用该方法,就可以访问到这个私有属性了。但是在方法里,就不能再用this.了,像上面的例子,要访问price,就可以在对象里添加方法:
复制代码 代码如下:

this.getPrice = function() {
//return price here!       
return price;
--------------------------------------------------------------------------------

继承:

使用以下语法继承:

复制代码 代码如下:

ElectricCar.prototype = new Car();

使用instanceOf检查对象是否某对象的继承,返回true或false。
复制代码 代码如下:

myElectricCar instanceof Car

给继承后的对象添加方法:
复制代码 代码如下:

// 使用构造函数定义一个新的对象
function ElectricCar( listedPrice ) {
    this.electricity=100;
    var price = listedPrice;
}

// 使新对象继承Car
ElectricCar.prototype = new Car();

// 为新对象添加方法
ElectricCar.prototype.refuel = function(numHours) {
    this.electricity =+ 5*numHours;
};


重写原型对象的值或方法:
当我们继承原型对象后,我们会继承原型的值和方法。但有的时候,我们的对象值或方法可能会不同,这时候,我们可以通过重写原型对象的值和方法来改变新对象的内容
复制代码 代码如下:

function Car( listedPrice ) {
   var price = listedPrice;
   this.speed = 0;
   this.numWheels = 4;

   this.getPrice = function() {
       return price;
   };
}

Car.prototype.accelerate = function() {
   this.speed += 10;
};

华科网络内容管理系统3.0
华科网络内容管理系统3.0

华科企业管理系统是一套基于php的智能建站软件!产品具有界面新颖美观、动感时尚等特点,是一套服务于中小企业的CMS内容管理系统,软件使用门槛低,无须专业电脑知识,全后台操作管理,操作简单且功能强大,同时软件还具有极强的可扩展性,可以适应各行业不同的需求。华科具有强大的后台管理功能,菜单栏目划分合理清晰。产品、新闻等功能均支持多级分类划分,可供用户自由选择,适合各行各业使用,各模板均精心开发、界面美

华科网络内容管理系统3.0 0
查看详情 华科网络内容管理系统3.0

function ElectricCar( listedPrice ) {
   var price = listedPrice;
   this.electricity = 100;
}
ElectricCar.prototype = new Car();

// 重写accelerate方法
ElectricCar.prototype.accelerate = function() {
  this.speed += 20; 
};
// 添加新方法decelerateElectricCar.prototype.decelerate = function(secondsStepped) {
    this.speed -= 5*secondsStepped;
};

myElectricCar = new ElectricCar(500);

myElectricCar.accelerate();
console.log("myElectricCar has speed " + myElectricCar.speed);
myElectricCar.decelerate(3);
console.log("myElectricCar has speed " + myElectricCar.speed);


相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号