JavaScript简单对象的创建

创建一个Object对象

hasOwnProperty:是否属于本类定义的属性。

 function Person { this.name = name || ""; this.age = age || ""; } Person.prototype = { sayHi: function() { }, }; var object1 = new Person; var object2 = new Person;

instanceof:判断一个对象是不是某种类型。

创建JSON对象 推荐使用的场合:
作为函数的参数,临时只用一次的场景。比如设置函数原型对象。

valueOf():返回对象对应的原始类型值。

继续升级 beta4 :

isPrototypeOf:是否是指定类的prototype。

 function Person { this._init; } Person.prototype = { _init: function { this.name = option.name; this.age = option.age; }, sayHi: function; } }; var object1 = new Person({ name: "Eric"; age: 24 }); object1.sayHi();

最简单的创建对象的方法是通过函数来创建对象,此时函数称为类模板,它相当于高级编程语言中的类的作用。在定义函数之后,可以使用new关键字和函数名一起创建新的对象,并把它赋值给一个变量,这时定义的函数实际上就是一个构造函数。在第一函数时,使用this关键字来代表将来所创建的对象。下面是一个例子:

 var object = new Object(); object.name = "Eric"; object.age = 24; object.sayHi = function(){....};

返回javascript教程主目录>>

如何解决:继续升级 beta3 :

functionPerson{this.name=name;//定义一个Person的属性为namethis.age=age;//定义一个Person的属性为agethis.address="上海";}//通过函数创建一个对象varp1=newPerson;alert;//输出名字为:张三//创建第二个对象varp2=newPerson;p2.address="广州";//修改p2对象的address属性alert;//输出:广州

new运算符的作用:

......for{alert;//该方式获取的p1.a的值为undefinedalert(a+":"+p1[a])//正确获取属性的方式}

以上两种创建对象方式的缺点:不能作为对象创建的模板,也就是不能用new进行构造新对象。

在函数内部通过var澳门十大电子游戏平台,关键字定义的属性是私有属性,属于局部变量,而不是类的属性。这个属性不能被对象所使用。

本文为大家分享了js创建对象的多种方法,分享个方法的优劣,具体内容如下

varobj=newObject();

第二种创建对象的方式:

toString():返回对象对应的字符串。

问题:1、调用者如果传递参数的顺序发生变化,那么废了
问题:2、参数增减都会导致函数声明变化,调用的地方也可能发生变化。

下面是类和对象中一些有用的方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

对象是对具有某些特性的具体事物的抽象。编程语言中的对象实际上是对现实世界中对象的抽象和模拟。JavaScript支持对象,其它如C++,Java等高级编程语言都有很强的对象表单和处理能力。在编程世界中,数据和处理数据的方法结合在一起就构成了对象。

 var object = { name: "Eric", age: 24, sayHi: function(){ console.log("My name is "+ this.name + " this year is " + this.age + "years old.") } };
functionPerson{this.name=name;//定义一个Person的属性为namethis.age=age;//定义一个Person的属性为agethis.say=function(){//创建一个公共的类方法alert;};}varp1=newPerson;alert;//对象.属性名称alert;//对象["属性名称"]

第一种创建对象的方式:

我们除了使用对象.属性名称的方法来调用对象的属性之外,还可以使用对象[“属性名称”]的方法来调用属性。例如:

继续优化,把初始化的代码 放到init函数中

关于这些方法在后面介绍对象原型的时候还会详细介绍。

第三种方式有个缺点:
对象的内部的函数会在每个对象中都存一份如果创建的对象非常多的话,那么非常浪费内存。函数的行为是所有对象可以共有,不需要每个对象都保存一份。所以,可以把函数放到原型中进行声明,那么所有对象都有了公共的函数,而且内存中只保留一份。所有的属性写到对象的内部

functionPerson{this.name=name;//定义一个Person的属性为namethis.age=age;//定义一个Person的属性为agevaraddress="上海";//私有属性}varp1=newPerson;alert;//undefined

第三种创建对象的方式:

constructor:返回对象的构造函数。

new运算符原理

我们还可以通过new()运算符来创建对象实例。要创建一个对象,只需要使用new运算符,然后跟上要创建对象的构造函数即可。例如,常用的构造函数包括Object()Array等等。这些构造函数都是JavaScript的内置函数。new()原宿风返回所创建对象的引用,程序应该把这个引用赋值给某个变量,并通过变量来访问所创建的对象。下面是使用构造函数创建对象的一些例子:

 function Person { //用一个对象把所有参数覆盖 this.name = option.name || ""; this.age = option.age || ""; } Person.prototype = { sayHi: function() { }, }; var object1 = new Person({ name: "Eric", age: 24 }); var object2 = new Person({ name: "XXX", age: xx });

propertyIsEnumerable:是否是可枚举的属性。

 function Person() { this.name = "Eric"; this.age = 24; this.sayHi = function(){ console.log; } } var object1 = new Person(); var object2 = new Person();

对象的常用操作

继续升级 beta2 :

JavaScript是一种基于对象的编程语言,气本质是面向对象。在JavaScript中没有类的概念,而是基于原型拷贝。

第三种方式beta1:

varperson=newObject();person.name="张三";person.age=20;

执行构造函数,在构造函数内部创建一个空对象把上一部创建的空对象跟构造函数的原型对象进行关联然后把this指向当前空对象在构造函数执行结束后,如果没有return,把空对象返回给object

......for;//循环获取所有a对象显示声明的属性}
 function Person() { this.name = 'Eric'; this.age = 24; } Person.prototype = { sayHi: function() { }, }; var object1 = new Person(); var object2 = new Person();
functionPerson{this.name=name;//定义一个Person的属性为namethis.age=age;//定义一个Person的属性为agethis.say=function(){//创建一个公共的类方法alert;};functiondosomething(){//创建一个私有的方法alert;}}varp1=newPerson;alert(p1.name+"说"+p1.say;//输出:张三说大家好

这种创建对象方式解决了前两种方式的缺点,可以作为对象创建的模板,可以一直复用创建出多个对象。

注意,如果要在循环中获取对象的属性,不能够使用对象.属性名的方式,而应该使用对象[属性名]的方式,例如:

通过函数创建对象

我们可以使用for的方式来循环获取对象的所有显示声明的属性:

例如构建一个对象的过程为:

使用函数来创建对象的缺点是:当通过类模板来创建了多个对象实例的时候,内存中会存在多个对象属性和方法的拷贝。也就是说,通过Person类创建了对象p1,内存中会有p1对象的name、age属性和say()方法,如果在创建一个对象p2,又会有p2对象的name、age属性和say()方法,创建100个属性就会有100份这样的拷贝,非常占用内存(在高级编程语言中,对象的属性和方法指向的是同一份拷贝)。在后面我们会降到通过原型链的方式来解决这个问题。

通过new构造函数来创建对象

最后提一点是JavaScript中提供了一种主动释放内存的方法:delete
对象名称.属性

prototype:获取类的prototype对象。

在上一篇文章中我们介绍了”JavaScript面向对象-原型的重写”。今天将继续学习其他知识:JavaScript简单对象的创建,貌似有点反过来学习了。

我们知道,在类中除了有类的属性之外,还应该有类的方法。如何在类模板中创建类的方法呢?如果要创建共有的方法,可以通过this.fn = function(){}的方式来创建,如果要创建私有的方法,可以通过function fn2(){}的方式来创建。例如:

构造函数是一种特殊的函数,它具备了创建对象并初始化对象的功能,正是由于这种构造对象的特性,才把这种类型的特殊函数称为构造函数。JavaScript提供了一个构造空对象的特殊构造函数Object(),可以用它来构造一个空的对象,并通过扩展这个对象来构造需要的对象。使用Object()创建对象时,需要把new运算符的返回值赋值给某个变量,并通过该变量来引用创建的对象。注意,指定给对象的属性隶属于对象,并且不能使用var关键字来声明。使用Object()构造函数来创建对象的一般格式为:

varcat=newObject();vararr=newArray("a1","a2","a3");
标签:, , , , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图