js创建对象的几种方式

 //1、使用js内置的对象String/Object/Function
 var str = new String("js内置对象创建对象");
 alert(str);//js内置对象创建对象
 //2、使用Json
 var books = {
  book:[{name:‘设计模式‘},{name:‘Java‘},{name:‘.Net‘}],
  author:[{name:‘cy‘},{name:‘lyl‘},{name:‘cyl‘}]
 }
 //json对象.属性(数组)[1].属性
 //{}里面的字段是属性,[]是数组
 alert(books.book[1].name);//java
 //3、使用自定义对象构造
 //javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。
 //3 eg1
 function Girl(){
  this.name = ‘cy‘;
  this.age = 22;
  this.tel = ‘13026167827‘;
 }
 function Gril(){
  Gril.prototype.name = ‘lyl‘;
  Gril.prototype.age = 20;
  Gril.prototype.tel;
 }
 var gril = new Gril();
 alert(gril.age);//lyl
 //3 eg2
 function Test(){
  this.test = function(){
   alert(‘defined by this‘); 
  }
 }
 Test.prototype.test = function(){
  alert(‘defined by prototype‘); 
 }
 var fun = new Test();
 fun.test();//defined by this
 //3 eg3
 //基类中两个方法
 function baseClass()
 {
  this.showMsg = function()
  {
   alert("baseClass::showMsg");   
  }
    
  this.baseShowMsg = function()
  {
   alert("baseClass::baseShowMsg");
  }
 }
 //类方法,类似于静态
 baseClass.showMsg = function()
 {
  alert("baseClass::showMsg static");
 }
 
 //继承类
 function extendClass()
 {
  this.showMsg =function ()
  {
   alert("extendClass::showMsg");
  }
 }
 extendClass.showMsg = function()
 {
  alert("extendClass::showMsg static")
 }
 
 //原型类,相当于j实例化ava中的继承类
 extendClass.prototype = new baseClass();
 //继承类,相当于直接实例化实现类
 var instance = new extendClass();
 instance.showMsg(); //显示extendClass::showMsg
 //不存在,就去prototype,也就是基类中找
 instance.baseShowMsg(); //显示baseClass::baseShowMsg
 instance.showMsg(); //显示extendClass::showMsg
 baseClass.showMsg.call(instance);//显示baseClass::showMsg static
 var baseinstance = new baseClass();
 baseinstance.showMsg.call(instance);//显示baseClass::showMsg
时间: 2024-08-11 21:34:09

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 创建对象的几种方式

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

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

Js是一门面向对象的语言,里面没有类的思想,所以直接是创建对象,下面介绍几种创建对象的方法: 1.对象字面量的方法:记住键值对格式:{key:value,key :value} 实例: Var obj={name:"演员",move:"长城",age:"18"} 如果想再创建一个新的对象,只能重复上面的操作,所以可操作性差,不能被重复使用,造成的直接后果就是代码的冗余度很高 2使用内置的构造函数 object Var obj=new Object

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)}} 如果

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

普通方法创建对象 var obj = { name:"猪八戒", sayname:function () { alert(this.name); } } var obj1 = { name:"沙和尚", sayname:function () { alert(this.name); } } var obj2 = { name:"孙悟空", sayname:function () { alert(this.name); } } obj.saynam

js创建对象的6种方式

一.工厂模式 function createStudent(name,age){ var o=new Object(); o.name=name; o.age=age; o.myName=function(){ alert(this.name); }; return o; } var student1 =createStudent('yjj',15); var student2 = createStudent('fff',18); //问题: 工厂模式没有解决对象识别的问题,不能确定一个对象的类