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
利用构造函数html" target="_blank">定义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 创建对象 经典模式全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
一、工厂模式 流程: 定义一个函数,函数返回对象。 适用场景: 需要创建多个对象,都是Object类型。 优点:完成了返回一个对象的要求。 缺点: 对象没有一个具体的类型,无法通过constructor识别对象, 都是Object类型。多个实例的sayName方法都是实现一样的效果,但是却存储了很多次。 // 1.工厂模式 function createPerson (name, age, job
介绍 本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式6:函数语法糖 函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码: if (typeof Function.prototype.method !== "function") { Function.pr
介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的: var app = app || {}; app.moduleA = app.moduleA || {}; app.moduleA.subModule
本文向大家介绍js创建对象的方式总结,包括了js创建对象的方式总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了js创建对象的方式。分享给大家供大家参考。具体如下: 希望本文所述对大家的javascript程序设计有所帮助。
在JavaScript中创建对象很容易——可以通过使用对象直接量或者构造函数。本章将在此基础上介绍一些常用的对象创建模式。 JavaScript语言本身简单、直观,通常也没有其他语言那样的语法特性:命名空间、模块、包、私有属性以及静态成员。本章将介绍一些常用的模式,以此实现这些语法特性。 我们将对命名空间、依赖声明、模块模式以及沙箱模式进行初探——它们帮助更好地组织应用程序的代码,有效地减轻全局污
本文向大家介绍js中创建对象的几种方式,包括了js中创建对象的几种方式的使用技巧和注意事项,需要的朋友参考一下 前言 不管是哪门语言,千变万化不离其宗,深入理解其本质,方能应用自如。对应到js,闭包,原型,函数,对象等是需要花费大功夫思考、理解的。本文穿插了js原型和函数的相关知识,讨论了批量创建对象的几种方式以及它们的优缺点。 正文 说起创建对象,最容易想到的便是通过对象字面量方式直接定义一个对