JS创建对象的几种方式详解

Js是一门面向对象的语言,里面没有类的思想,所以直接是创建对象,下面介绍几种创建对象的方法:

1.对象字面量的方法:记住键值对格式:{key:value,key :value}

实例:

Var obj={name:”演员”,move:”长城”,age:”18”}

如果想再创建一个新的对象,只能重复上面的操作,所以可操作性差,不能被重复使用,造成的直接后果就是代码的冗余度很高

2使用内置的构造函数 object

Var obj=new Object();

Obj.name=”梁朝伟”;

Obj.movie=”赤壁“;

Obj.age=”38”;

如果我们想在定义一个新的对象,该段代码的缺点显而易见了

3.封装一个工厂函数来解决上述的问题

function createStar(name,movie ,age){

var o=new Object();

o.name=name;

o.movie=movie;

o.age=age;

o.say=function(){

console.log(“我是”+this.name);

}

return o;

}

var obj=createStar(“”,””,28);

var obj1=createStar(“”,””,38);

4.自定义构造函数

//什么是构造函数?
      //构造函数其实也是函数,但是通常用来初始化对象
     //并且和new关键字同时出现

    function Person(){
    this.name="憨力";
    this.age=28;
    this.say=function(){
        alert("我是"+this.name);
    }
  }

var p=new person();

也就是可以进行传值,此时this指向的就是p对象

遇到的问题1:

如果person(),被当成普通的函数执行,就会遇到一个问题,this的指向会是windows

遇到的问题2:

每创建一个新的对象,函数say就会被调用一次,这样就造成了函数被多次调用,造成了系统资源的极大栏废

如果在在构造函数之外创建一个函数呢?

如 :function say(){

alert(“”);

}

把上面的函数改成有参数的函数

  function Person(name,age,func){
    this.name=name;
    this.age=age;
    this.say=func;  }

var pp=new Person(“”,””,say);

但是又会造成新的问题;全局变量的污染,怎么解决呢?就涉及到原型的问题了。

预知后文如何,且听以后的分解吧!

时间: 2024-08-05 23:40:59

JS创建对象的几种方式详解的相关文章

js创建对象的四种方式以及消耗时间比较

// Property-less object console.time('zoop1'); var zoop = (function (numObjects) { var pooz = Object.create(null); for(var i = 0; i< numObjects; i++) { pooz[i] = Object.create(null); } return pooz; })(1000000); console.timeEnd('zoop1'); // Using Obje

第184天:js创建对象的几种方式总结

1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) 1 function createPerson(name){ 2 //1.原料 3 var obj=new Object(); 4 //2.

js - 创建对象的几种方式(工厂模式、构造函数模式、原型模式)

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f8b594f10/ 工厂模式 做法:内部创建一个对象,并未对象属性赋值并且返回 缺点:解决创建多个相识对象的问题,但不能识别创建的对象的类型 构造函数模式 做法:直接将属性和方法赋值给 this 对象,没有 return 语句 缺点:对象不是共用方法和属性,每 new 一次对象就要创建一个内存,超出性能消耗 原型模式 做法:通过 prototype 为对象添加属性 缺点:每个实例都共享属性方法,实例中修

js获取url参数值的两种方式详解

有个url如下: http://passport.csdn.net/account/login?from=http%3a%2f%2fwrite.blog.csdn.net%2fpostedit 我们该如何获取from这个参数的值呢?在网上搜了下方法很简单,如下,第一种是通过正则,第二种通过切串放进数组的方式: 方法一: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^

JS定义类的六种方式详解

转载自: http://www.jb51.net/article/84089.htm 在前端开发中,经常需要定义JS类.那么在JavaScript中,定义类的方式有几种,分别是什么呢?本文就JS定义类的六中方式说明如下(案例说明): 1.工厂方式 ? 1 2 3 4 5 6 7 8 9 10 11 function Car(){ var ocar = new Object; ocar.color = "blue"; ocar.doors = 4; ocar.showColor = fu

JS 创建对象的几种方式

面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值 对象 或者函数".这就是说对象是一组没有特定顺序的值,其中值可以是数据或者函数. 虽然Object构造函数或对象字面量都可以创建单个对象,但这些方式有个明显的缺点,那就是使用同一个接口创造很多对象,会产生大量的重复代码.所以产生了下面几种模式. 1 工厂模式 fu

JavaScript | 创建对象的9种方法详解

--------------------------------------------------------- 创建对象 标准对象模式 "use strict"; // ***************************************************************** var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job =

07.30《JavaScript》——JS创建对象的三种方式

1.第一种创建对象的方式:先定义类再创建对象 // 第一种创建对象的方式:先定义类再创建对象 function stu(sno, name, age){ this.sno = sno; this.name = name; this.age = age; this.study = function(){ alert("学号为"+this.sno+"的学生,姓名叫做"+this.name+",正在努力学习,年龄为"+this.age); } } va

JS创建对象的几种方式整理

javascript是一种"基于prototype的面向对象语言",与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一:通过"字面量"方式创建对象 方法:将成员信息写到{}中,并赋值给一个变量,此时这个变量就是一个对象 列如: var person={"name":"abc","age":22,work:function(){console.loh(1)}} 如果