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 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
JavaScript中:表达式和语句的区别[译]
Sep 17 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
原生js简单实现放大镜特效
May 16 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
巧妙运用v-model实现父子组件传值的方法示例
Apr 07 Javascript
对于防止按钮重复点击的尝试详解
Apr 22 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
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
JS模拟多线程
2007/02/07 Javascript
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
微信小程序实现首页弹出广告
2020/12/03 Javascript
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
Python 创建守护进程的示例
2020/09/29 Python
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
生产车间主管岗位职责
2013/12/28 职场文书
优秀演讲稿范文
2013/12/29 职场文书
学校万圣节活动方案
2014/02/13 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
员工离职证明范本
2015/06/12 职场文书