Javascript面向对象
2016-08-14 23:43
260 查看
JS的面向对象:
抽象
封装
继承
多重继承
多态
对象的组成:
犯法:函数、过程、动态的
属性:变量、状态、静态的
JS中可以给任何对象加上任何属性
给对象添加属性:
obj.a = 12;
给对象添加方法:
obj.show = function(){};
其实全局的变量和属性都是属于window
JS中的Object对象:
var obj = new Object();
obj.name='zhangSan';
obj.qq=123456;
obj.showName=function(){alert(this.name)};
obj.showQQ=function(){alert(this.qq)};
调用:
var obj = new Object();
obj.showName();
obj.showQQ();
注意与JAVA中的区别:JS中的类创建对象通过函数实现:
createPerson是类名称
function createPerson(name,qq){
var obj = new Object();
obj.nanme = name;
obj.qq = qq;
obj.showName=function(){};
obj.showQQ = function(){};
return obj;
}
createPerson.prototype.sum=function(){};//给类追加方法
var p1 = createPerson('zhangSan',123);//该函数成为构造函数
p1.showName();//不加括号则打印字符串
var p2 = createPerson('lisi',456);
可以通过new CreatePerson();
//系统会创建一个Object对象,并为其添加属性和方法,最后返回this对象
调用任何函数都可以加上new
function createPerson(name,qq){
this.nanme = name;
this.qq = qq;
this.showName=function(){};
this.showQQ = function(){};
}
var p1 = new createPerson('zhangsan',123);
注意给对象和给类加属性和方法的区别
给类加方法:
Array.prototype.sum=function(){};
给对象加上方法:
arr.sum = function(){};
一般写法:
用构造函数加上属性,用原型加上方法
用json来实现面向对象:
var jaon={
name:"abc",
qq:123456,
showName: function(){},
showQQ:
function(){}
};
JS里面的继承:继承父亲的属性和方法
JS里面的内置call(obj)方法,可以改变this
function A(){this.abc="abc";}
function B(){
A.call(this);//继承A的属性
}
B.prototype=A.prototype;//继承A的方法
注意JS中存在引用,数组、对象复制都是引用复制
B.prototype.fn=...此时改变了B也改变了A
其实原型就是一个函数数组,为了防止引用带来的问题,使用如下方法:
//实现方法的继承
for(var i in A.prototype){
B.prototype[i] = A.prototype[i];
}
抽象
封装
继承
多重继承
多态
对象的组成:
犯法:函数、过程、动态的
属性:变量、状态、静态的
JS中可以给任何对象加上任何属性
给对象添加属性:
obj.a = 12;
给对象添加方法:
obj.show = function(){};
其实全局的变量和属性都是属于window
JS中的Object对象:
var obj = new Object();
obj.name='zhangSan';
obj.qq=123456;
obj.showName=function(){alert(this.name)};
obj.showQQ=function(){alert(this.qq)};
调用:
var obj = new Object();
obj.showName();
obj.showQQ();
注意与JAVA中的区别:JS中的类创建对象通过函数实现:
createPerson是类名称
function createPerson(name,qq){
var obj = new Object();
obj.nanme = name;
obj.qq = qq;
obj.showName=function(){};
obj.showQQ = function(){};
return obj;
}
createPerson.prototype.sum=function(){};//给类追加方法
var p1 = createPerson('zhangSan',123);//该函数成为构造函数
p1.showName();//不加括号则打印字符串
var p2 = createPerson('lisi',456);
可以通过new CreatePerson();
//系统会创建一个Object对象,并为其添加属性和方法,最后返回this对象
调用任何函数都可以加上new
function createPerson(name,qq){
this.nanme = name;
this.qq = qq;
this.showName=function(){};
this.showQQ = function(){};
}
var p1 = new createPerson('zhangsan',123);
注意给对象和给类加属性和方法的区别
给类加方法:
Array.prototype.sum=function(){};
给对象加上方法:
arr.sum = function(){};
一般写法:
用构造函数加上属性,用原型加上方法
用json来实现面向对象:
var jaon={
name:"abc",
qq:123456,
showName: function(){},
showQQ:
function(){}
};
JS里面的继承:继承父亲的属性和方法
JS里面的内置call(obj)方法,可以改变this
function A(){this.abc="abc";}
function B(){
A.call(this);//继承A的属性
}
B.prototype=A.prototype;//继承A的方法
注意JS中存在引用,数组、对象复制都是引用复制
B.prototype.fn=...此时改变了B也改变了A
其实原型就是一个函数数组,为了防止引用带来的问题,使用如下方法:
//实现方法的继承
for(var i in A.prototype){
B.prototype[i] = A.prototype[i];
}
相关文章推荐
- JavaScript——面向对象以及基于类的继承
- prototype.js 让你更深入的了解javascript的面向对象特性
- javascript中的面向对象
- Javascript:用 "脑图软件" 学习 “面向对象”
- JavaScript 面向对象
- javascript面向对象(五)
- [JavaScript] JavaScript AjAX 面向对象
- 面向对象的JavaScript-005-Function.prototype.call()的3种作用
- [Javascript 高级程序设计]学习心得记录9 js面向对象
- 轻松学习JavaScript十二:JavaScript基于面向对象之创建对象(二)
- 面向对象的Javascript
- javascript基础之面向对象(中)
- 回顾JavaScript基础知识小结2-面向对象(介绍)
- javascript面向对象
- 面向对象的JavaScript(3):私有成员和公开成员
- javascript面向对象
- Javascript面向对象之私有静态变量
- javascript面向对象之Javascript 继承
- 关于javascript面向对象
- 面向对象的 JavaScript 编程及其 Scope 处理