面向对象的JS
●分析下面的代码:
func七ionaddH《) ,,nurnl" ,,nurnZ" .value; .value; 叭月.了屯习.了 varnulnl二doculnent.qetElemen七By工d《 v己rnuI'n2=d0cLll'nent.ge七Elemen七By工d《 document.qe七Elemen七By工d《”result") }I 函数
”七eX七” ,,七eX七field" ,,numl" + ”七eX七” ,,七eX七fieldZ" ,,numZ" ,,七eX七” ,,bUtton" ,,七eX七field3" 二”addH()" ,,工eSUlt" ,,bUtton" ,,bUtton" ,,提交” ' src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png" width="576" height="106">
上面的函数依赖于外部的HTMl代码。
面向对象就是封装变化的东西,写成类似于函数方程一样的思想。
总结:函数的含义是通用性,不依赖与外部的因素。就是我们以前学过的函数方程,比如:y = AX2+BX+Z 此函数中是参数X 返回值是Y
function MethedName ( X)
{
var y = AX2+BX+Z;
return y;
}
通过上面的解释就可以理解面向对象中的函数封装思想。
面向对象的思想来源于现实生活中,将‘类’比作我们生活中的某个人,它具备了自己的能力,每个‘类’‘人’都具有他自己的能力,我们想要完成一件事情如果自己可以搞定,就调用自己的方法,如果我们不能搞定就可以请出具备该能力的‘类’‘人’去调用它的方法去完成要做的事情。
这就是面向对象的思想,把能力在某个类中封装起来,让该类对象化,和人一样了具备某种能力,在特定的场合发挥该类的作用。
举例:如:123456lldsldlgdlgnvvadvn
这个字符串中我想要前面的6位数字的话,我们的办法是:因为我要操作字符串,所以就要请出字符串对象,该对象里面封装了截取字符串的方法。所以我们就调用字符串的截取字符串的方法就搞定了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`-` `
☻☞
①
上面类在创建对象实例时,是每个对象实例都会有蓝颜色高亮函数,各有各的,函数一样,但是地址不一样,这样就会有些对象内存的浪费。
上面的公开函数还可以传参数,在调的时候给它参数即可。
②
上面的这种方式给对象添加函数,是动态的,对不同的对象就可以添加不同的函数,也可以添加相同的函数,只需赋给函数名再调用即可。
上面的这种添加的函数,就只能是p1对象独有的。
③
Dog.prototype.shout的意思是给类(对象原型)添加一个方法
通常我们多使用构造函数与原型方式混合使用的。
如:function Dog()
{
this.name = "";
this.age = 0;
}
Dog.prototype.shout = function(){
window.alert('小狗');
}
Var dog1 = new Dog();
dog1.shout();
到这里我总结面向对象是:把对象的能力封装到类中去,对外公开一些属性和方法就可以了,调用者不需要知道内部是怎么实现的。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
☻☞
代码的重构的思想
将方法中固定死的对象抽象出来,以函数参数的形式往方法里传进来,这样方法就可用性很高,使用时只需要传相关参数,即可处理获得想要的返回值。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
☻☞
function inst()
{
this.attr1=1;
this.attr2="attr2";
...
}
var newInst=new inst();
for(var attr in newInst)
{
alert("inst的"+attr+"属性:"+newInst[attr]);
}
通过for...in...遍历一个对象实例的所有属性,只有基本类型的属性值会显示出来,如果一个对象的属性是object则提示的是此属性的类型,可以使用嵌套的for...in...语句实现完全遍历。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
JavaScript 中应该用"=="还是"==="?

浙公网安备 33010602011771号