面向对象

Object.defineProperty()
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

20170605131424.png

声明一个空对象a , 给a定义一个属性prop , 赋值 1

.

20170605181133.png

writable确定是否可以修改属性,设置false后 , 不得修改属性 , 上图赋值2,结果还是1

.

20170605201246.png

enumerable设置这个属性不能遍历

如何定义多个

Object.defineProperties()

工厂模式

function 对象(a,b,c){
    var obj = new Object()
    obj.name = a
    obj.age = b
    obj.job = c
    obj.sayName = function(){
        alert(this.name)
    }
    return obj
}

var 我 = 对象('Tom',18,'Web')

这就是工厂模式

new

1.帮你创造临时对象
2.帮你绑定原型
3.不用return临时对象
4.原型的名字固定叫prototype

构造函数模式

代码前面加上 new 就是

为了与普通函数区别,构造函数名字的第一个字母通常大写

20170607120235.png
function Aa(b,c){
if(this instanceof Aa === false){    //如果不是new,我就返回new
        return new Aa(b,c)
  }
  this.name = b 
 }

constructor

new 统一的原型,是protoype , 默认有 constructor 属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 5,288评论 3 12
  • 本章内容 理解对象属性 理解并创建对象 理解继承 面向对象语言有一个标志,那就是它们都有类的概念,而通过类可以创建...
    闷油瓶小张阅读 4,340评论 0 1
  • 普通创建对象和字面量创建对象不足之处:虽然 Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有...
    believedream阅读 7,116评论 2 18
  • 今天才发现这么一部纪录片,名字很文艺,内容让人感动,让人热血澎湃。90后的杨帆去全世界寻找跟自己同年月日的人。...
    独游者阅读 1,924评论 0 0
  • 道可道也,非恒道也。名可名也,非恒名也。无名,万物之始也;有名,万物之母也。故恒无欲也,以观其眇;恒有欲也,以观其...
    JINYANL阅读 1,859评论 0 0