javascript中如何创建对象?

javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象。那么,既然是面象对象的,如何来创建对象呢?

JavaScript中创建对象的方法如下:

一:使用new关键字调用构造器创建对象;

在JavaScript中,所有的函数名可以看成一个类名;

函数名和其参数可以看成一个构造器用于构造对象;

使用构造函数模式创建对象的几点注意事项:

(1):没有明显的创建对象

(2):直接将属性和方法赋给this对象

(3):没有return语句

(4):创建Student实例的时候,必须要使用new操作符;

function Student(name,age){
 
this.name=name;//this是当前对象的引用;
 
this.age=age;
 
}
var s1=new Student();//没有传入参数,函数里面的name,age是undefine
var s2=new Student("wangshicheng",20);
 
document.write(s1.name+s1.age);//都是undefine;
document.write(s2.name+s2.age);//都是传入实参的值;

二:使用Object直接创建对象

var myObj=new Object();//使用Object类创建一个空的对象
 
myObj.name="wangshihcheng";
 
myObj.age=20;
 
myObj.infor=function(){
 
document.write("名字:"+this.name);//this.的指向问题
 
document.write("年龄:"+this.age);
 
}
 
myObj.infor();//调用创建的对象里面的方法;

三:使用JSON创建对象的语法

//object={属性名1:属性值1,属性名2:属性值2,.....}

//注意JOSN格式中属性名要加双引号;

var p={
 
"name":"wangsch",
 
"gender":"man",
 
"age":40,
 
"son":[
 
    {
 
        "name":"son1",
 
        "age":2
 
    },
 
    {
 
    "name":"son2",
 
    "age":5
 
    }
 
],
 
"infor":function(){
 
document.write("父亲的姓名:"+this.name+",父亲的年龄:"+this.age+"<br>");
 
for( var child in this.son ){
 
document.write("儿子的姓名:"+this.son[child].name+",儿子的年龄:"+this.son[child].age+"<br>");
 
                }
 
        }
 
}
 
p.infor();//调用对象p中的infor方法

四:原型模式创建对象

在JavaScript中,每个函数都有一个prototype属性,它是一个指针,指向一个对象,叫做

原型对象,原型对象包含了可以由特定类型的所有实例对象共享的属性和方法;

另外,这个对象有一个自带的属性constructor,指向创建对象的构造方法;

当我们使用原型模式时可以使所有的实例共享原型对象的属性和方法,

从而我们不必要早构造函数中定义对象的实例的信息;

function Student(){
        
 
}
Student.prototype.name="wang";
Student.prototype.sex="man";
Student.prototype.class="5";
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
var s1=new Student();
s1.sayName();//wang
 
var s2=new Student();
s2.sayName();//wang
 
s2.name="shicheng";
s2.sayName();//shicheng

当我们读取某个对象的属性时,都会执行一次搜索,搜索首先从对象实例本身开始,

如果在实例中找到了这个属性,则搜索结束,返回属性的值;

若实例上没有找到,则继续向对象的原型对象上面延申,搜索对象的原型对象,若在原型上面

找到这个属性,则返回原型上面属性对应的值,若没有找到,则返回undefine;

因此,可以看出,实例对象属性会覆盖原型对象上面的属性;

五:组合使用构造函数和原型模式

构造函数用于定义实例的属性,原型模式则用于定义方法和共享的属性;

function Student(name,sex,grade){
    this.name=name;
    this.sex=sex;
    this.grade=grade;
}
 
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
Student.prototype.school="nongda";

这种混合模式可以支持想构造函数传入参数,还极大的节约了内存。

以上就是javascript中如何创建对象?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法