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动态调整iframe高度的代码
Apr 10 Javascript
克隆javascript对象的三个方法小结
Jan 12 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
Sep 05 Javascript
jQuery之ajax技术的详细介绍
Jun 19 Javascript
Javascript浅谈之this
Dec 17 Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
Sep 03 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
Vue实现省市区三级联动
Dec 27 Vue.js
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中simplexml_load_string函数使用说明
2011/01/01 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
php实现微信扫码支付
2017/03/26 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
学习ExtJS table布局
2009/10/08 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
python如何通过protobuf实现rpc
2016/03/06 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
园艺师求职信
2014/03/10 职场文书
2014年安全生产责任书
2014/07/22 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android