js 创建对象 经典模式全面了解


Posted in Javascript onAugust 16, 2016

1. 概述

通过构造函数创建对象, 有时忘记了写new, 这时函数就会返回undefined

可以创建一个函数createXXX, 在内部封装new。

function Student(props){
  this.name = props.name || '匿名';
  this.grade = props.grade || 1;  
}  

Student.prototype.hello = function(){
  alert('Hello, '+ this.name + '!');

}

function createStudent(props){
  return new Student(props || {});
}

注意 , 如果函数没有显示的写明 return xxx; 则返回undefined。

example

利用构造函数定义Cat,并让所有的Cat对象有一个name属性,并共享一个方法say(),返回字符串'Hello, xxx!':

'use strict';

function Cat(name) {
  this.name = name;
}

Cat.prototype.say = function(){
  return ('Hello, ' + this.name + '!');
}

// 测试:
var kitty = new Cat('Kitty');
var doraemon = new Cat('哆啦A梦');
if (kitty && kitty.name === 'Kitty' && kitty.say && typeof kitty.say === 'function' && kitty.say() === 'Hello, Kitty!' && kitty.say === doraemon.say) {
  alert('测试通过!');
} else {
  alert('测试失败!');
}

以上这篇js 创建对象 经典模式全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript面向对象编程
Mar 02 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
Angular2自定义分页组件
Apr 19 Javascript
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
微信小程序中上传图片并进行压缩的实现代码
Aug 28 Javascript
electron中使用bootstrap的示例代码
Nov 06 Javascript
vue实现选中效果
Oct 07 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
Nov 06 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 Javascript
如何在CocosCreator里画个炫酷的雷达图
Apr 16 Javascript
js 上传文件预览的简单实例
Aug 16 #Javascript
js removeChild 方法深入理解
Aug 16 #Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
Aug 16 #Javascript
总结Node.js中的一些错误类型
Aug 15 #Javascript
自动化测试读写64位操作系统的注册表
Aug 15 #Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 #Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 #Javascript
You might like
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
JS类的封装及实现代码
2009/12/02 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
js中new一个对象的过程
2017/02/20 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
在Python中调用ggplot的三种方法
2015/04/08 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
销售自我评价
2013/10/22 职场文书
厨师岗位职责
2013/11/12 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
中秋晚会活动方案
2014/08/31 职场文书
中学生检讨书1000字
2014/10/28 职场文书
2014年招生工作总结
2014/11/26 职场文书