JavaScript设计模式-面向对象编程1

面向对象编程

这是一个老生常谈的问题,笔者从一开始学习编程就觉得头痛的问题,只有真正写完代码去理解才知道,这个理解和悟的每一个人都不一样,一旦理解后看别人怎么说你都能理解,不然都头大。接下来我们用通俗的例子和代码来写写。

以JavaScript为代表,它是一门灵活的语言。
从中学开始我们就知道数学里面有一种叫函数,还有一种叫自变量,简称变量。例如y =2x,y就是函数,x就是变量。我们还可以 这么写f(x) = 2x ,这样就有点像计算机的函数表达式。
接下来我们看看 JavaScript的函数表达式是怎么写的。
我的特长是打排球,然后我用垫球(digging),传球(passing),扣球(spiking)定义函数
function digging() {
//垫球
}
function passing() {
//传球
}
function spiking() {
//扣球
}
看上去和数学函数有点不一样,但其实数学函数f(x),f就是function的简写, x为参数。
而JS中函数会定义一个函数名,我们再看数学函数有一个等于2x,为什么JS函数没有呢?其实JS的值在{}里,在JS函数中默认返回值是undefined,如果想要返回一个值或对象,需要定义。
这个方式在JavaScript中叫声明函数,函数会被提升,所谓提升也就是即使写在后面也会提到前面。
这个方法不好的地方在于 声明了三个全局变量。
函数其实是变量吗?!
这样在团队开发中会发生变量覆盖问题,所以一般不建议这么写。
接下来我们再看一下函数的另一种形式
var digging = function () {
//垫球
};
var passing = function () {
//传球
};
var spiking = function () {
//扣球
};
// 函数也是变量
所以这三个函数也同样是全局变量,依然会发生变量覆盖问题
怎么解决这样的问题呢?
转到开头说的面向对象编程,所以我们用对象来收编变量
var volleyball = {

        digging : function () {
            console.log('垫球')
        },
        passing : function () {
            console.log('传球')
        },
        spiking: function () {
            console.log('扣球')
        }
};
volleyball.digging()

在这里我们定义了一个volleyball 对象,对象的形式是a:b,a我们称为volleyball的属性
当b是函数的时候,我们称之为方法,volleyball.digging()就会打印垫球.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值