js对象的构造和继承实现代码

JavaScript012

js对象的构造和继承实现代码,第1张

复制代码

代码如下:

<script>

//定义js的user对象

function

User(name,age){

this.name=name,

this.age=age,

this.getName=function(){

return

this.name

},

this.getAge=function(){

return

this.age

}

}

//实例化一个对象

var

use=new

User("aa",21)

alert(use.name)

alert(use.getAge())

//js对象继承

/*

jb51.net

在面向对象的编程方法中,对象继承是必不可少的,那么怎么在javascript中实现继承机制呢。由于javascript并不是一个严格的面向对象的语言,因此在对象继承上也显的不一样。我们也来创建一个基类Polygon,代表一个多边形,一个多边形有个共同的属性就是边数(sides)和一个共同的方法计算面积(getAreas)。这样我们的这具Polygon类看起来就像下面这样定义:

*/

function

Polygon(iSides){

this.sides

=

iSides

}

Polygon.prototype.getAreas

=

function(){

return

0

}

/*

因为基类并不能确定面积,因此在这里我们返回为0。

接着我们就创建一个子类Triangle,一个三角形,显然这个三角形是要从多边形继承的,因此我们要让这个Triangle类继承Polygon类,并且要覆盖Polygon类的getAreas方法来返回三角形的面积。我们来看下在javascript中的实现:

*/

function

Triangle(iBase,

iHeight){

Polygon.call(this,3)

//在这里我们用Polygon.call()来调用Polygon的构造函数,并将3作为参数,表示这是一个三角形,因为边是确定的,所以在子类的构造函数中就不需要指定边了

this.base

=

iBase

//三角形的底

this.height

=

iHeight

//三角形的高

}

Triangle.prototype

=

new

Polygon()

Triangle.prototype.getAreas

=

function(){

return

0.5

*

this.base

*this.height

//覆盖基类的getAreas方法,返回三角形的面积

}

/*

参考上面的实现,我们再定义一个矩形:

*/

function

Rectangle(iWidth,

iHeight){

Polygon.call(this,4)

this.width

=

iWidth

this.height

=

iHeight

}

Rectangle.prototype

=

new

Polygon()

Rectangle.prototype.getAreas

=

function(){

return

this.width

*

this.height

}

/*

好了,上面我们定义了一个基类和两个子数,下面我们来测试一个这两个子类是否能正常工作:

*/

var

t

=

new

Triangle(3,6)

var

r

=

new

Rectangle(4,5)

alert(t.getAreas())

//输出9说明正确

alert(r.getAreas())

//输出20说明正确

</script>

对象直接量提供了另一种创建新对象的方式。对象直接量允许将对象描述文字嵌入到JavaScript代码中,就像将文本数据嵌入在JavaScript代码中,就像将文本数据嵌入在JavaScript代码中作为引用的字符串一样。对象直接量是由属性说明列表构成的,这个列表包含在大括号之中,其中的属性说明用逗号隔开。对象直接量中的每个属性说明列表都由一个属性名及跟在其后的冒号和属性值构成。使用对象直接量创建对象的一般格式如下:

var myobject = {属性名1:属性值1,属性2:属性值,...,属性名n:属性值n}

从这个定义中可以看出,这种定义方式实际上是声明一种类型的变量,并同时进行了赋值。因此,声明后的对象直接量可以在代码中直接使用,而不必使用new关键字来创建对象。

无标题页

var

circle

=

{x:0,y:0,radius:2}

document.write(circle.x

+

"

"

+

circle.y

+

"

"

+

circle.radius)

[Ctrl+A

全选

注:如需引入外部Js需刷新才能执行]

此种方法只是创建了该对象的一个实例,如果要创建该对象的多个实例,需要将对象直接量写多遍。

1,html写好界面,定义好class和id

2,为了模拟出扑克牌21点游戏,应先定义卡牌池中有1-10,J,Q,K每个数字和字母分别有4个

3,js中实现界面交互,如点击开始按钮,随机从卡牌池中抽取一个数字或字母存入临时变量a,并附于点数之和num其相应的点数

4,点击抽牌按钮随机从卡牌池剩余的卡牌中抽取,对应的卡牌存入变量a中,点数之和num=num+本次抽卡的点数

5,当num>21时提示玩家爆点,小于21点时可选按钮抽牌,等于21点时提示恭喜之类的话,如果点击完成抽牌则记录此玩家点数

6,同理可扩充玩家至2,3,4....个,原理相同,不同玩家存储对应的变量就可以了,最终通过所有<=21点的玩家num,num1,num2来判断输赢

7,同理可设置庄家,庄家在与其他玩家点数相同时赢得对方

8,在此基础上就能增添许多功能了,比如每个玩家默认100金币,有底注,每轮开始的时候可加注,如玩家不跟则底注输掉无法参加游戏,等等之类的各种规则随便发挥