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 相关文章推荐
来自qq的javascript面试题
Jul 24 Javascript
JqGrid web打印实现代码
May 31 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
微信小程序 教程之注册页面
Oct 17 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
小程序中英文混合排序问题解决
Aug 02 Javascript
关于JS解构的5种有趣用法
Sep 05 Javascript
JS操作json对象key、value的常用方法分析
Oct 29 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.ini中文版
2006/10/09 PHP
用PHP调用数据库的存贮过程!
2006/10/09 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php数组去除空值函数分享
2015/02/02 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
本科生详细的自我评价
2013/09/19 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
空气的环保标语
2014/06/12 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python