源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于JavaScript 类的使用详解

  • 时间:2021-06-09 12:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于JavaScript 类的使用详解
[b]以下为构造函数方法创建类: [/b]
[u]复制代码[/u] 代码如下:
function className (prop_1, prop_2, prop_3) {  this.prop1 = prop_1;  this.prop2 = prop_2;  this.prop3 = prop_3;}
[b]有了上面的类,我们就可以为类创建实例: [/b]
[u]复制代码[/u] 代码如下:
var obj_1 = new className(v1, v2, v3) var obj_2 = new className(v1, v2, v3)
我们也可以给类添加方法(method),其实就是Function里的Function。
[u]复制代码[/u] 代码如下:
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   } }
[b]属性访问域:[/b] 在JavaScript里,对象的属性默认都是全局的,也就是说,对象内外都可以直接访问该属性。上面例子里this.prop1, this.prop2, this.prop3都是全局属性。 如何定义私有属性呢?使用var,下面的例子里,price就变成了私有属性!
[u]复制代码[/u] 代码如下:
function Car( listedPrice, color ) {     var price = listedPrice;     this.color = color;     this.honk = function() {         console.log("BEEP BEEP!!");     }; }
如果你想访问私有属性,那么你可以在对象内添加一个方法去返回这个私有属性,因为方法在对象内,所以可以访问对象的私有属性。在外部调用该方法,就可以访问到这个私有属性了。但是在方法里,就不能再用this.了,像上面的例子,要访问price,就可以在对象里添加方法:
[u]复制代码[/u] 代码如下:
this.getPrice = function() { //return price here!        return price; --------------------------------------------------------------------------------
[b]继承:[/b] [b]使用以下语法继承: [/b]
[u]复制代码[/u] 代码如下:
ElectricCar.prototype = new Car();
使用instanceOf检查对象是否某对象的继承,返回true或false。
[u]复制代码[/u] 代码如下:
myElectricCar instanceof Car
给继承后的对象添加方法:
[u]复制代码[/u] 代码如下:
// 使用构造函数定义一个新的对象 function ElectricCar( listedPrice ) {     this.electricity=100;     var price = listedPrice; } // 使新对象继承Car ElectricCar.prototype = new Car(); // 为新对象添加方法 ElectricCar.prototype.refuel = function(numHours) {     this.electricity =+ 5*numHours; };
重写原型对象的值或方法: 当我们继承原型对象后,我们会继承原型的值和方法。但有的时候,我们的对象值或方法可能会不同,这时候,我们可以通过重写原型对象的值和方法来改变新对象的内容
[u]复制代码[/u] 代码如下:
function Car( listedPrice ) {    var price = listedPrice;    this.speed = 0;    this.numWheels = 4;    this.getPrice = function() {        return price;    }; } Car.prototype.accelerate = function() {    this.speed += 10; }; 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);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部