第一种模式:工厂方式
- var lev=function(){
-
- return "啊打";
- };
- function Parent(){
- var Child = new Object();
- Child.name="李小龙";
- Child.age="30";
- Child.lev=lev;
- return Child;
- };
-
- var x = Parent();
- alert(x.name);
- alert(x.lev());
说明:
1.在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法
2.引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent();因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象
3.在函数的最后返回该对象
4.不推荐使用这种方式创建对象,但应该了解
第二种模式:构造函数方式
- var lev=function(){
-
- return "啊打";
- };
- function Parent(){
-
- this.name="李小龙";
- this.age="30";
- this.lev=lev;
-
- };
-
- var x =new Parent();
- alert(x.name);
- alert(x.lev());
说明:
1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return
2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外
3..同样的,不推荐使用这种方式创建对象,但仍需要了解
第3种模式:原型模式
- var lev=function(){
-
- return "啊打";
- };
- function Parent(){
-
-
- };
- Parent.prototype.name="李小龙";
- Parent.prototype.age="30";
- Parent.prototype.lev=lev;
-
- var x =new Parent();
- alert(x.name);
- alert(x.lev());
说明:
1.函数中不对属性进行定义
2.利用prototype属性对属性进行定义
3.同样的,不推荐使用这样方式创建对象
第四种模式:混合的构造函数,原型方式(推荐)
- function Parent(){
- this.name="李小龙";
- this.age=32;
-
- };
- Parent.prototype.lev=function(){
-
- return this.name;
- };;
-
- var x =new Parent();
-
- alert(x.lev());
说明:1.该模式是指混合搭配使用构造函数方式和原型方式
2.将所有属性不是方法的属性定义在函数中(构造函数方式)
将所有属性值为方法的属性利用prototype在函数之外定义(原型方式)
3.推荐使用这样方式创建对象,这样做有好处和为什么不单独使用构造函数方式和原型方式,由于篇幅问题这里不予讨论
第五种模式:动态原型方式
- function Parent(){
- this.name="李小龙";
- this.age=32;
- ;
- if(typeof Parent._lev=="undefined"){
-
-
- Parent.prototype.lev=function(){
-
- return this.name;
- }
- Parent._lev=true;
- }
-
- };
-
-
- var x =new Parent();
-
- alert(x.lev());
说明:
1.动态原型方式可以理解为混合构造函数,原型方式的一个特例
2.该模式中,属性为方法的属性直接在函数中进行了定义,但是因为
- if(typeof Parent._lev=="undefined"){
-
-
- Parent._lev=true;}
从而保证创建该对象的实例时,属性的方法不会被重复创建
3.,推荐使用这种模式
分享到:
相关推荐
详解js创建对象的几种方式和对象方法 这篇文章是看js红宝书第8章,记的关于对象的笔记(第二篇)。 创建对象的几种模式: 工厂是函数的意思。工厂模式核心是定义一个返回全新对象的函数。 function getObj...
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式).docx
1.new Object() 2.字面量创建对象 构造函数创建对象 工厂模式
主要对比了js创建对象几种方式的优缺点,感兴趣的小伙伴们可以参考一下
NULL 博文链接:https://yueyemaitian.iteye.com/blog/781915
js中对象的创建有多种方式,下面就是我整理的几种创建方式。希望对你有所帮助
在上篇文章给大家介绍了javascript面向对象基础,本篇文章继续深入学习javascript面向对象,JS的语法非常灵活,简单的对象创建就有好几种不同的方法。这些过于灵活的地方有时候确实很让人迷惑,那么今天我们就来梳理...
本文为大家分享了js创建对象的多种方法,分享个方法的优劣,具体内容如下 第一种创建对象的方式: 创建JSON对象 推荐使用的场合: 作为函数的参数,临时只用一次的场景。比如设置函数原型对象。 var object = { ...
最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式。话不多说,直接步入正题。 第一种:Object构造函数创建 var Person = new Object(); Person.name = 'Nike'; Person.age = 29; 这行代码创建...
感觉事情并不这么简单,于是我仔细看了一下这几种遍历对象的方法的区别 for in for in 循环是最基础的遍历对象的方式,它还会得到对象原型链上的属性 // 创建一个对象并指定其原型,bar 为原型上的属性 const obj =...
本文介绍了几种js创建对象的方法,分享给大家供大家参考,具体内容如下 1、工厂模式 弊端:没有解决对象的识别问题,即怎么知道一个对象的类型。 2、构造函数模式 与工厂模式相比: 1、没有显式的创建对象 2...
以下几种,是javascript中最常用的创建对象的方式。初学者看到后,可能会晕掉,甚至会觉得担心。其实完全不用担心,这些种方式,只需要掌握一两种,对其他的几种只需要理解就好了
方便学习js类的朋友,让你快速的掌握js类的定义方法,方法有很多种,结果都一样。大家可以根据自己的爱好选用。
本篇文章主要介绍了JavaScript创建对象的多种方式以及优缺点,主要介绍了5种方式,有兴趣的可以了解下
本文穿插了js原型和函数的相关知识,讨论了批量创建对象的几种方式以及它们的优缺点。 正文 说起创建对象,最容易想到的便是通过对象字面量方式直接定义一个对象吧,但这种方式只能创建少量,单独且相互间无联系的...
JavaScript中的所有事物都是对象,本文为大家介绍下JS中创建对象的几种方式,如原始方法、工厂方法等等
最近在看javascript高级程序设计,其中对对象的创建做了具体的阐述,综合起来,总结了下(je知识库javascript专栏由这方面的教程,有兴趣的可以去知识库看看)
主要介绍了js创建对象的几种方法及继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧