javascript 面向对象
javascript 是支持面向对象编程,但不适用类和接口。所以对象在代码执行中创建和增强,具有动态性而非严格定义的实体
_Draven
喜欢各类技术,希望能多与各位技术大神交流交流。
展开
-
javascript面向对象 - 理解
javascript 没有类的概念,所以,在我的理解中,javascript的对象,可以理解为类,因为既可以定义属性又可以定义方法。JS在OOP(面向对象)中,访问器属性是面向对象的重要表现,它可以设置对象的私有属性。因为在面向对象中,可能需要在对象属性设值前或者设置后进行一系列的逻辑操作。 1.对象的属性 对象的属性分为数据属性和访问器属性。 defineProperties原创 2016-08-16 15:22:39 · 361 阅读 · 0 评论 -
javascript 原型对象
在JS中,无论什么时候,只要创建一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向了函数的原型对象。 在默认情况下,所有原型对象都会获得一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的指针。而可以通过这个构造函数,可以继续为原型对象添加其他的属性和方法。 当访问对象的时候,会先判断当原创 2016-08-30 17:37:07 · 329 阅读 · 0 评论 -
javascript (对象定义)工厂模式
工厂模式,可以理解为,定义一个接口,就是把参数传进去后,进过一系列的处理。然后得到相同想要的结果。否则,如果一个个对象都做相同操作的话,他这样会很消耗资源。 在JS中创建对象会习惯的使用 new 关键字和类构造函数(当然主要还是对象字面量),问题在于这样会导致两个类之间产生依赖性。工厂模式就是一种有助于消除两个类依赖性的模式。解决处理多个项数对象的问题,但是没有解决对象识原创 2016-08-30 17:36:20 · 1023 阅读 · 0 评论 -
javascript (对象定义) 构造函数模式
使用构造函数模式新建对象的话,这样就能返回对应函数的的类型。 创建一个函数,把构造函数的作用域赋给新对象。因为这个是在全局作用域里面定义的函数,以这种方式定义的构造函数是定义在Global对象中,在浏览器中的话就是window对象,所以能用window对象直接调用其中的方法。 function Car(brand,color,num){ this.brand=brand;原创 2016-08-30 17:36:50 · 522 阅读 · 0 评论 -
javascript (对象定义)原型模式
每个函数中都有一个prototype(原型)属性,它是一个指针,指向一个对象。 按照原型定义,prototype通过调用构造函数而创建的对象实例的原型对象。使用原型对象的好处是可以让所有实例共享它包含的属性和方法。 代码例子: function Person(){} Person.prototype.name="Nicholas"; Person.prototype.原创 2016-08-30 17:37:47 · 479 阅读 · 1 评论 -
javascript (对象定义)原型模式和构造函数模式 组合(重要)
在自定义类型中,最常用的方式就是原型模式和构造函数模式组合。 构造函数模式用于定义实例属性,原型模式用于定义方法和共享属性。 演示代码: function Person(name,age,job){ this.name=name; this.age=age; this.job=job; this.friends = ["lili",原创 2016-08-30 17:38:23 · 419 阅读 · 0 评论 -
javascript (对象定义)动态原型模式
这个主要做法就是,通过检查某个应该存在的方法是否有效,是否需要初始化原型。这个是通过构造函数中初始化原型,可以保存同时使用构造函数和原型的优点。 代码演示: function Person(name,age,job){ this.name=name; this.age=age; this.job=job; if (typeof thi原创 2016-08-30 17:38:57 · 853 阅读 · 0 评论 -
javascript (对象继承)原型链
Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型。这个函数包括构造函数和普通函数. JS中的继承,子函数通过把父函数实例化实现的。 如以下代码: function SuperType111(){ this.property=true; } SuperType111.prototype.getSuperValue原创 2016-08-30 17:39:33 · 545 阅读 · 0 评论