您的位置:首页 > Web前端 > JavaScript

js面向对象

2015-08-23 19:29 489 查看
一、类(原型对象)和对象的区别和联系:
(1)类是抽象的概念,代表一类事物
(2)对象是具体的,代表一个实体
(3)对象是以类(原型对象)为模板创建的
二、创建对象的方式有五种
1.工厂方法--使用new object创建对象并添加相关属性
2.使用构造函数来定义类
function 类名(源性对象名)(){}
创建对象:var 对象名=new 类名();//在这里类名();就是表示一个类,而直接使用类名();就是调用方法
在js中一切都是对象
3.使用prototype
4.构造函数及原型混合方式
5.动态原型方式
三、通过delete 对象名.属性名;//这样就会立 即释放对象的这个属性空间
四、成员函数(方法):
对象有属性,有行为(行为在程序中靠函数体现)
(1)function person(){
this.show=function(){};
}
(2)function show(){}
var p=new person();
p.abc=show;在这里相当于把函数赋给该对象的属性,如果后面有小括号,则表示函数的返回值赋给该属性;
五、function Dog(){
this.show=function(){
alert('小狗');
}
}//这种方法每个对象都会独占,假如对象很多则会影响效率
/*function Dog(){}
Dog.prototype.show=function(){
alert('小狗');
}*/ //在这里用原型法添加属性,使得每个对象的该属性都指向同一个方法
var dog1=new Dog();
var dog2=new Dog();
alert(dog1.show==dog2.show);//用双等方法判断两个对象是否指向同一个函数
六、双等号的作用
当两边都是字符串的时候,则比较内容
如果是数字,则比较数的大小
如果是对象或是对象函数,则比较地址是否相等
七、function show(){
var a=1;
alert(a);
}
将一个函数放入括号内就成了一个函数表达式,所以在后面直接加括号就可调用该函数
(function(){var a=1;alert(a);})();//在这里会打出数字1;
function aa(){
var a=1;
return function(){
a++;
alert(a);
}
}//在这里要说明的是aa();函数会返回一个函数,而这个函数不会执行(可以理解为函数表达式)
(function aa(){
var a=1;
return function(){
a++;
alert(a);
}
})()//这种写法会执行外层函数,执行结果就是里面的函数
((function aa(){
var a=1;
return function(){
a++;
alert(a);
}
})())()//这种写法就可以将第一次执行后的函数进行执行,弹出数字2;
//在这里就是代码模块化,减少全局变量的污染;
八、闭包应用2
var aa=(function (){
var a=1;
function bb(){
a++;
alert(a);
}
function cc(){
a++;
alert(a);
}
return {
b:bb(),//在这里直接返回函数值
c:cc
}
})();
aa['b'];//这里是对象调用属性的另一种方法
aa.c();

新的创建类的方法s5
Object.create(a,b)
a:表示要继承的类,也可以为null;b:对象属性的描述,参数
writable:是否可任意写
configurable:是否能够删除,是否能够被修改
enumerable:是否能用 for in 枚举
value:值

 访问属性:

get(): 访问
set(): 设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: