JavaScript面向对象是近年来比较火的一个概念了,由于小弟才疏学浅,虽然做过不少的web项目,看了网上很多深奥的资料和教程,还是对他们深奥的理论一知半解,前段时间看了点书,总算有了自己的理解,今天也出来装一回,如果觉得很深奥,请直接鄙视我,如果觉得不对,请直接拍砖。
先通俗了解下面一些东西。
在JS代码中写入function fn(){}或者var fn=function(){}等等,你都可以将其理解为对象,当然还有数组等等。
在理解面向对象之前,先了解下面几个东西吧。
1.对象方法的调用
在js最外层写的function可以还可以理解为window对象的一个方法。定义的变量也可以称之为window对象的一个属性。例如:
var test=function(){alert("123")}当然上面的你也可以这样定义function test(){alert("123")}
作为window对象的方法我们可以这样调用
test()//弹出警告框123(因为window对象是顶级对象我们可以将其省略)
window.test()//弹出警告框123
window['test']()//弹出警告框123,可以将test理解为window数组对象下面的一个方法值。
通过以上的例子大致了解了对象的方法怎使用和调用。
2,私有方法
私有方法就是只有在对象内部作用域内部才能使用的方法。可以用变量作用域的方式来理解这个东西。
上面例子的function都可以理解为window对象的私有方法。继续看下面的例子。
var pet=function(){ function showpet(){ alert("123") } showpet();//私有方法可以在函数作用域范围内使用。 var temp="私有变量只有在函数或者对象作用域范围内能访问"}showpet();//会出错pet.showpet()//还是不能这样调用var Penguin=new pet() //实例化一个pet对象Penguin.showpet()//不好意思这样子还是不能让你调用。
如果我想定义的方法可以对象的作用域外面调用该怎么办呢?我该怎么使用私有方法呢?我们来看下一点内容吧。
3.静态方法
带着上面的问题我们继续上面的例子。
var pet=function(){ function showpet(){//私有方法 alert("123") } showpet();//私有方法可以在函数作用域范围内使用。}pet.show=function(){//给pet对象添加一个静态方法。alert("456")}pet.name="Penguin"//给pet对象添加一个静态属性。pet.show()//弹出警告框456alert(pet.name)//弹出警告框Penguin//继续思维碰撞=====================var Penguin=new pet() //实例化一个pet对象Penguin.show()//不好意思,这个静态方法好像没有被实例继承。有这种思路值得表扬啊,加油!
上面的实例向你展示了什么叫静态方法,当然你可能会不明白,其实我也不懂,因为我也是菜鸟,但是只要你看了以后知道怎样为对象写一个静态方法,怎么调用该静态方法就可以了,也许某一天,你突然明白了就会回来教我了。带着上面的问题我们来看看实例化的对象能调用的方法。
新闻热点
疑难解答
图片精选