转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(this.hour+":"+this.minute+":"+this.second); } } clock.showTime();//调用 2.创建Object实例 var clock = new Object(); clock.hour=12; clock.minute=…
hello,everybody,今天要探讨的问题是JS面向对象,其实面向对象呢呢,一般是在大型项目上会采用,不过了解它对我们理解JS语言有很大的意义. 首先什么是面向对象编程(oop),就是用对象的思想去写代码,那什么是对象呢,其实我们一直在用,像数组 Array  时间 Date 都是对象,并且这些对象是系统创建的,所以叫系统对象,而我们自己当然也可以创建对象,一般对象有两部分组成: 1 方法 (动态的,相当于对象下面的函数)比如Array 的push(),sort()方法 2  属性 (静态…
JS面向对象编程(转载) 什么是面向对象编程(OOP)?用对象的思想去写代码,就是面向对象编程. 面向对象编程的特点 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有对象上继承出新的对象 多态:多对象的不同形态 对象的组成 属性:对象下面的变量叫做对象的属性 方法:对象下面的函数叫做对象的方法 var arr = []; arr.number = 10; //对象下面的变量:叫做对象的属性 //alert( arr.number ); //alert( arr.length );…
1.对象字面量. var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(this.hour+":"+this.minute+":"+this.second); } } clock.showTime();//调用 2.创建Object实例 var clock = new Object(); clock.hour=12; clock.minute=10; clock.showHour=…
工厂模式 function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); } return o; } ,'new worker'); ,'new worker2'); 工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别问题(即怎么样知道一个对象的类型).因为全部都是O…
虽然Object构造函数或对象字面量都可以用来创建单个对象,但都有一个缺点,使用同一个接口来创建对象,会产生大量重复的代码,为解决这个问题,引出下列方法 1.工厂模式 抽象了创建具体对象的过程,用函数来封装以特定接口创建对象的细节.比如 function createPerson(name,age,job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function () { aler…
JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象. 当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回undefined. 例如,创建一个Array对象: var arr = [1,2,3]; 其原型链是: arr ----> Array.prototype ----> Object.prototy…
Object构造函数和对象字面量都可以用来创建单个对象,但是在创建多个对象时,会产生大量重复代码. 1.工厂模式 工厂模式抽象了创建具体对象的过程.由于ECMAScript无法创建类,我们用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function() { console.…
标准用法: function Sprite(){ //函数内容部设置属性 this.name='shimily'; } //原型上设置方法 Sprite.prototype.show=function(){ console.log(this.name); }//[尽量不要在原型上面添加公共属性]//公共的属性或常量可以在原型上面设置 Sprite.prototype.PI=3.1415926;var s = new Sprite(); s.show(); 改进用法: 改进用法一:********…
封装方法: /** * @矩形canvas库 * @authors Shimily (275766400@qq.com) * @date 2016-12-28 10:30:51 * @version $Id$ */ function Rect( options){ this._init(options); //执行方法 } Rect.prototype={ _init:function(options){ this.x=options.x || 0; //参数设置,如果不传参数,则设置默认值 t…