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 相关文章推荐
jquery实现每个数字上都带进度条的幻灯片
Feb 20 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
简单的代码实现jquery定时器
Nov 17 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
纯前端JavaScript实现Excel IO案例分享
Aug 26 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
Vue之封装公用变量以及实现方式
Jul 31 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
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php的常量和变量实例详解
2017/06/27 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
asp 取文本框名称代码
2008/12/02 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
angular 服务随记小结
2019/05/06 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
实习单位接收函
2014/01/11 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
班主任高考寄语
2015/02/26 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server