1. 重庆云诚科技 > 互联网资讯 >

「创建虚拟网站的三种方法」创建对象的三种方法

导读javascript中创建对象的几种方式本文最佳回答用户:【ineedyou】 ,现在由重庆云诚科技小编为你探讨与【创建虚拟网站的三种方法】的相关内容!最佳回答1.对象的字面量的形式var obj = ...

今天我们来聊聊[创建虚拟网站的三种方法],以下3关于创建对象的三种方法的观点希望能帮助到您找到想要的结果。

javascript中创建对象的几种方式

本文最佳回答用户:【ineedyou】 ,现在由重庆云诚科技小编为你探讨与【创建虚拟网站的三种方法】的相关内容!

最佳回答1.对象的字面量的形式var obj = {}

2.new 的方式来调用构造函数的形式

Object是个构造函数var obj = new Object(); obj.name = '黄忠'

3.工厂方法

function fn (name) {

 // 1. 创建一个空对象

 var obj = new Object()

 // 2. 给对象添加属性和方法

 obj.name = name

 // 3. 返回一个obj对象

 return obj

}

4.构造函数

帕斯卡命名 第一个单词的第一个字母大写,后续的每一个单词的第一个字母都大写

通过this动态的给构造函数添加属性和方法

function Hero(name, weapon, equipment, blood) {

    // this 动态的给对象增加成员

    // this 指向了当前对象

    this.name = name;

    this.weapon = weapon;

    this.equipment = equipment;

    this.blood = blood;

    this.attack = function () {

      console.log(this.name + ':攻击');

    }

    this.run = function () {

      console.log(this.name + ': 加速跑');

    }

  }

  var hero1 = new Hero('黄忠', '弓箭', ['头盔', '靴子'], 100);

以上就是重庆云诚科技小编解答(ineedyou)贡献关于“javascript中创建对象的几种方式”的答案,接下来继续为你详解体育用户(长ゝ青诗)分析“js创建对象几种方式”的一些相关解答,希望能解决你的问题!

javascript中创建对象的几种方式

js创建对象几种方式

本文最佳回答用户:【长ゝ青诗】 ,现在由重庆云诚科技小编为你讲解与【创建虚拟网站的三种方法】的相关内容!

最佳回答推荐有一下几种方式:

1.对象字面量创建对象

var obj = { a:1,b:2 };

注意:对象字面量是一个表达式,这种表达式每次运算都会创建并初始化一个新对象,并计算这个新对象的每个属性值。所以如果在循环体内使用对象字面量,每次循环时都会创建新对象。

2.通过new运算符创建对象

var obj = new Object(); //创建空对象 var ary = new Array(); //创建空的数组对象

注意:new运算符后面跟的是一个函数调用,这个函数被称为构造函数。js中原始类型都包含内置的构造函数,也可以自己定义构造函数。

3.通过立即执行函数创建对象

var obj = (function(){ return {x:1,y:2};}());

注意:在立即执行函数内部一定要有return语句,return出的内容就是待创建的对象。

以上就是重庆云诚科技小编解答贡献者:(长ゝ青诗)贡献的关于“js创建对象几种方式”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,接下来继续表述下文用户【笙弦】贡献的“JavaScript创建对象的几种模式比较”的一些相关疑问做出分析与解答,如果能找到你的答案,可以关注本站。

JavaScript创建对象的几种模式比较

本文最佳回答用户:【笙弦】 ,现在由重庆云诚科技小编为你探讨与【创建虚拟网站的三种方法】的相关内容!

最佳回答第一种:Object构造函数创建

var Person = new Object();

Person.name = 'Nike';

Person.age = 29;

这行代码创建了Object引用类型的一个新实例,然后把实例保存在变量Person中。

第二种:使用对象字面量表示法

var Person = {};//相当于var Person = new Object();

var Person = {

name:'Nike';

age:29;

}

对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程。也就是说,第一种和第二种方式创建对象的方法其实都是一样的,只是写法上的区别不同

在介绍第三种的创建方法之前,我们应该要明白为什么还要用别的方法来创建对象,也就是第一种,第二种方法的缺点所在:它们都是用了同一个接口创建很多对象,会产生大量的重复代码,就是如果你有100个对象,那你要输入100次很多相同的代码。那我们有什么方法来避免过多的重复代码呢,就是把创建对象的过程封装在函数体内,通过函数的调用直接生成对象。

第三种:使用工厂模式创建对象

function createPerson(name,age,job){

var o = new Object();

o.name = name;

o.age = age;

o.job = job;

o.sayName = function(){

alert(this.name);

};

return o;

}

var person1 = createPerson('Nike',29,'teacher');

var person2 = createPerson('Arvin',20,'student');

在使用工厂模式创建对象的时候,我们都可以注意到,在createPerson函数中,返回的是一个对象。那么我们就无法判断返回的对象究竟是一个什么样的类型。于是就出现了第四种创建对象的模式。

第四种:使用构造函数创建对象

function Person(name,age,job){

this.name = name;

this.age = age;

this.job = job;

this.sayName = function(){

alert(this.name);

};

}

var person1 = new Person('Nike',29,'teacher');

var person2 = new Person('Arvin',20,'student');

对比工厂模式,我们可以发现以下区别:

1.没有显示地创建对象

2.直接将属性和方法赋给了this对象

3.没有return语句

4.终于可以识别的对象的类型。对于检测对象类型,我们应该使用instanceof操作符,我们来进行自主检测:

alert(person1 instanceof Object);//ture

alert(person1 instanceof Person);//ture

alert(person2 instanceof Object);//ture

alert(person2 instanceof Object);//ture

同时我们也应该明白,按照惯例,构造函数始终要应该以一个大写字母开头,而非构造函数则应该以一个小写字母开头。

那么构造函数确实挺好用的,但是它也有它的缺点:

就是每个方法都要在每个实例上重新创建一遍,方法指的就是我们在对象里面定义的函数。如果方法的数量很多,就会占用很多不必要的内存。于是出现了第五种创建对象的方法

第五种:原型创建对象模式

function Person(){}

Person.prototype.name = 'Nike';

Person.prototype.age = 20;

Person.prototype.jbo = 'teacher';

Person.prototype.sayName = function(){

alert(this.name);

};

var person1 = new Person();

person1.sayName();

使用原型创建对象的方式,可以让所有对象实例共享它所包含的属性和方法。

如果是使用原型创建对象模式,请看下面代码:

function Person(){}

Person.prototype.name = 'Nike';

Person.prototype.age = 20;

Person.prototype.jbo = 'teacher';

Person.prototype.sayName = function(){

alert(this.name);

};

var person1 = new Person();

var person2 = new Person();

person1.name ='Greg';

alert(person1.name); //'Greg' --来自实例

alert(person2.name); //'Nike' --来自原型

当为对象实例添加一个属性时,这个属性就会屏蔽原型对象中保存的同名属性。这时候我们就可以使用构造函数模式与原型模式结合的方式,构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性

第六种:组合使用构造函数模式和原型模式

function Person(name,age,job){

this.name =name;

this.age = age;

this.job = job;

}

Person.prototype = {

constructor:Person,

sayName: function(){

alert(this.name);

};

}

var person1 = new Person('Nike',20,'teacher');

关于[创建虚拟网站的三种方法]的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于创建对象的三种方法、创建虚拟网站的三种方法的信息别忘了在本站进行查找喔。

推荐文章:

  • 膜的组词和部首,膜的组词和拼音是什么
  • 亲字组词100个 亲字的组词有
  • 酬谢是什么意思,定当酬谢是什么意思
  • 异的组词和部首,株的组词和部首
  • 箭组词和拼音 耸组词和拼音部首
  • 有志不在年高的意思-有志不在年高的意思雨来表达了
  • 繁衍的意思 繁衍的意思简单解释
  • 彤组词,胀组词和拼音
  • 血泊的拼音 泊的拼音
  • 螺组词拼音 螺的组词和拼音
  • 本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.cqycseo.com/zixun/7826.html

    联系我们