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编程起步(第七课)
Jan 10 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
捕获键盘事件(且兼容各浏览器)
Jul 03 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
bootstrap手风琴制作方法详解
Jan 11 Javascript
angular4实现tab栏切换的方法示例
Oct 21 Javascript
Vue中的slot使用插槽分发内容的方法
Mar 01 Javascript
javascript 内存模型实例详解
Apr 18 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 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实现维护文件代码
2007/06/14 PHP
php 三维饼图的实现代码
2008/09/28 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
python障碍式期权定价公式
2019/07/19 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
初二生物教学反思
2014/02/03 职场文书
大学老师推荐信
2014/02/25 职场文书
公务员保密承诺书
2014/03/27 职场文书
心理健康活动总结
2014/04/30 职场文书
店面出租协议书范本
2014/11/28 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
对Keras自带Loss Function的深入研究
2021/05/25 Python
Apache POI的基本使用详解
2021/11/07 Servers