javascript--面向对象编程要点总结

一、如何定义一个类
java:
class Person{
private String name;
}
javascrpit:
function Person(name){
var y = 10;
this.name = name;
}


二、javascrpit中,一切都是对象,包括类(函数)也是一种对象。
Number
Date
Function


三、使用类,创建对象
var obj = new Object();
obj.name="dsdfsdfsd";


//平时调用函数
var v = Person("张三");//v的值返回的是undefined


//当成类,这个函数就是构造函数
var p = new Person("张三");//p就是一个Person类的实例,p是一个对象,里面name属性。


四、封装,通过构造函数设置局部变量来实现
function Person(name){
var y=10;//这一个y就是私有变量
this.name = name;
}
var p = new Person();//y就不再被其它变量使用,就垃圾回收器回收。


五、闭包,函数里面定义函数,嵌套函数。
function Person(){
var y=10;//这一个y就是私有变量。
this.name=name;
this.sayHello=function(){
y++;
alert(this.name+y);
}
}
var p = new Person();//y不会被垃圾回收器回收
p.sayHello();//这个函数可以访问封装起来的y。


六、作用于scope,上下文


function sayHello(){
alert(this.v);
}
sayHello();//函数中的this是window;
window.sayHello();//所有的变量,默认都存在window这个对象中。


var v1={v:"this is v1"};//直接使用{}来定义的一个javascript对象
alert(v1.v);//访问对象的v这个属性
alert(v1["v"]);//使用类似于数组的方式访问v这个属性


//所有的函数下面都有call、apply这两个方法,还有一个属性prototype.
sayHello.call(v1);//代表执行一个函数,把函数的作用域设置为v1,输出的this is v1
sayHello.apply(v1);//一样的效果,apply需要通过数组[]来给要调用的函数传递参数


七、扩展已有javascript类,使用prototype
var d =6;
//实现给Number类添加一个名为add的方法
d.add(8).add(9);
//使用prototype
Number.prototype.add=function(v){
return this+v;
}


//扩展我们自己的类
function Person(name){
this.name=name;
}
Person.prototype.sayHello=function(){
alert(this.v);
}


var p=new Person("张三");
p.sayHello();


八、继承
function classA(name){
this.name=name;
this.sayHello=function(){
alert(this.name);
}
}


//让classB继承classA
function classB(name){
this.tempMethod=classA;
this.tempMethod(name);
}


var b=new classB("李四");
b.sayHello();


//上面的classB构造函数还可以改下
function classB(name){
classA.call(this,name);
}


function classB(name){
classA.apply(this,[name]);
}


九、可变参数arguments
function sum(){
var s=0;
for(var i=0;i<arguments.length;i++){
s+=arguments[i];
}
return s;
}


alert(sum(1,4,5));
alert(sum(33,2,54,55));


十、||这个操作符,返回的是第一个不为false、""、0、null。。。这些代表逻辑假的值。
function doSomethind(e){
e=e||window.event;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值