设为首页 加入收藏

TOP

复习面向对象--创建对象(二)
2019-09-17 17:45:51 】 浏览:63
Tags:复习 面向 对象 创建
on
(){ console.log(this.name); } return o; } var peter = new Person('peter',18); peter.sayHi();

  此模式除了new实例外其他的都和工厂模式一样,构造函数在不返回值的情况下,默认会返回新实例,而通过在构造函数的末尾添加一个return语句,可以重写调用构造函数时返回值。
  简单的说,如果没有return,和普通的构造函数一致,如果有return,它就返回想要返回的值。

  ps:构造函数返回的对象和构造函数外部创建的对象没有什么不同,不能依赖instanceof操作符来确定对象的类型。所以!不提倡用该模式。

  8:稳妥构造函数模式:在一些安全的环境中(禁止使用this和new),或者防止数据被其他应用程序改动时使用。在寄生构造函数的基础上,构造函数内部不使用this,外部不使用new.

function Person(name,age){ var o = new Object(); o.name = name; o.age = age; o.sayHi = function(){ console.log(name); } return o; } var peter = Person('peter',18); peter.sayHi(); // peter

  该模式是由道格拉斯.克罗克福德发明的稳妥对象,所谓的稳妥对象就是指的没有公共属性,而且其方法也不应用this的对象。
  在上面的例子上,peter保存的就是一个稳妥对象,除了sayHi方法外,没有别的方式能够访问到其数据成员,虽然外部能够给这个对象添加新的方法或数据成员,但也不可能有别的方法传回到构造函数内的原始数据。
  所以这个模式适合在安全模式下引用。

 

 

后记:

  在复习面向对象中,由于篇幅过长,将知识点分成了三部分,面向对象--创建对象,面向对象--原型与原型链面向对象--继承,对应的知识点我放在了github里,有需要的可以去clone学习,觉得好的话,给个star。

  文章有不对或者不理解的地方,请私信或者评论,一起讨论进步。

 

 

参考资料:

  java script高级程序设计(第三版)

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇老王讲架构:负载均衡 下一篇memcpy一种实现方法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目