JavaScript---OOP浅谈1
来源:互联网 发布:腾讯企业邮箱域名设置 编辑:程序博客网 时间:2024/05/19 13:58
对象化编程-------简单地去理解就是把javascript能涉及到的范围分成各种对象,对象下面再次划分对象。编程出发点多是对象,或者说基于对象。所说的对象既包含变量,网页,窗口等等。
注意:对象只是一种特殊的数据
1.基本对象
我们一般划分的角度还是从数据类型这方面
Number
String
Array
Math
Data
这边我只是简单地罗列出来部分,具体的可以参考http://www.w3school.com.cn/js/js_obj_intro.asp
2.下面介绍创建类和对象的模式
a.简单方式:
var people = {};people.name = "steven";people.age = 23;people.getName = function () {return "People's name is " + this.name;};console.log(people.getName()); //People's name is stevenconsole.log(people.age); //23
不好的地方就是:在创建多个对象的场景下会产生很多冗余的代码,耦合度不高!
b.工厂模式:
function makePeople(name, age, job) {var _obj = {};_obj.name = name;_obj.age = age;_obj.job = job;_obj.getName = function () {return "People's name is " + this.name;}return _obj;}var webdesigner = makePeople("steven", 23, "wendesigner");console.log(webdesigner.getName); //People's name is stevenconsole.log(webdesigner.job) //wendesigner
c.原型模式(prototype)
function People(){};People.prototype = { constructor :People, name:"steven", age:23, job:"webdesigner", getName:function(){ return "People's name is "+this.name; }} var webdesign = new People();var carman = new People();console.log(webdesign.getName()); //People's name is stevenconsole.log(carman.getName()); //People's name is steven
d.混合模式(原型 + 构造函数)
function People(name.age.job) {this.name = name;this.age = age;this.job = job;};People.prototype = {constructor : People,getName : function () {return "People's name is " + this.name;}}var webdesigner = new People("steven", 23, "webdesigner");var carman = new People("zyc", 24, "carman");console.log(webdesigner.getName()) //People's name is stevenconsole.log(carman.getName()) //People's name is zyc
e.闭包下的私有变量模式
(function () {var name = "";People = function (val) {name = val;};People.prototype = {constructor : People,getName : function () {return "People's name is " + name;}};})();var webdesigner = new People("steven");console.log(webdesigner.name); //undefinedconsole.log(webdesigner.getName()); //People's name is stevenvar carman = new People("zyc");console.log(carman.name); //undefinedconsole.log(carman.getName()); //People's name is zyc
不好的地方就是:初级程度的代码不是很让人理解
如果我写的有问题,还是对这里的内容有疑惑,都希望大家提出来!
0 0
- JavaScript---OOP浅谈1
- OOP in Javascript(1)
- 浅谈OOP
- 浅谈OOP
- 浅谈OOP
- 浅谈OOP
- 浅谈OOP
- 浅谈OOP
- JavaScript OOP
- JavaScript OOP
- JavaScript OOP
- JavaScript && OOP
- javascript OOP
- JavaScript OOP
- javascript OOP
- JavaScript OOP
- JavaScript OOP
- JavaScript OOP
- 如何判断一个函数是否是凸的
- JavaScript跨域总结与解决办法
- nginx日志格式说明
- linux 串口编程 用read函数读取数据被截断 怎样一次读完
- JSONStringer+JSONArray+JSONObject
- JavaScript---OOP浅谈1
- 让 TextView 自带滚动条
- 虚函数 VS 纯虚函数
- delphi7 开发ActiveX的学习备忘录
- IOS
- 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器
- 程序员必读书单
- 安装Nginx步骤
- 如何将Android数据库操作通用化(二)