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 相关文章推荐
你所要知道JS(DHTML)中的一些技巧
Jan 09 Javascript
Javascript中的delete介绍
Sep 02 Javascript
javascript学习(一)构建自己的JS库
Jan 02 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
axios基本入门用法教程
Mar 25 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
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微信公众平台开发类实例
2015/04/01 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
Prototype String对象 学习
2009/07/19 Javascript
js数组的操作详解
2013/03/27 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
ansible作为python模块库使用的方法实例
2017/01/17 Python
python实现录音小程序
2020/10/26 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
python开发一款翻译工具
2020/10/10 Python
Python实现京东抢秒杀功能
2021/01/25 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
灵泰克Java笔试题
2016/01/09 面试题
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
校园广播稿500字
2014/02/04 职场文书
社区活动总结报告
2014/05/05 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书