资讯专栏INFORMATION COLUMN

javascript中对象都是通过函数创建的

selfimpr / 952人阅读

摘要:通过字面量定义的对象年月日或者通过方法来创建一个对象年月日可以看到,中函数的作用相当于中类的作用,那么在中一句很重要的话就是,对象都是通过函数创建的。比如,数组是一个函数对象都是由函数创建的比如,函数函数就作为对象被赋值了两个属性

面向对象是当代编程的主流思想。无论是C++还是Java,都是面向对象的。严格意义上来讲,JavaScript并不是面向对象的, 但Javascript的灵活性足以让我们将其用作一门面向对象语言.

JavaScript是一种没有类的,面向对象的语言。它使用原型继承来代替类继承。

在学习原型继承前,我们来了解一下在javascript中对象的概念。可以先告诉大家,javascript的对象是不同于 Java, C++中对象的概念的。

学过java或者C++的人都知道,对象是什么、对象是怎样产生的。为了和javascript中的对象进行比较,还是举一个java下对象的例子

class person{
string name;
string birthday;
public void sayhello{
  System.out.println("hi,I am "+name+",I was born in "+birthday);
}
}
person Amy=new person();

在java或C++里,对象是new一个class出来的,里面有字段,属性,方法.

但是在javascript中,对象里面的一切都是属性,只有属性,没有方法。那么方法如何表示呢?方法也是一种属性,表示为键值对的形式。

/通过字面量定义的对象
var Amy = { 
                 name : "Amy", 
                 birthday : "1997年1月1日",
                 say_hello   : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); }
            };

或者通过方法来创建一个对象:

function person() {
                 name : "Amy", 
                 birthday : "1997年1月1日",
                 say_hello   : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); }

        }
        var Amy = new person();

可以看到,javascript中function(函数)的作用相当于java中class(类)的作用,那么在javascript中一句很重要的话就是,

对象都是通过函数创建的。

javascript的数据有两种,简单数据和复杂数据。简单数据有undefined,null,boolean,number和string这五种。复杂数据只有一种,即对象(object)。

那么,在javascript中,数组是对象,函数也是对象。

比如,数组:
var mycars=new Array();//Array()是一个函数,对象都是由函数创建的
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
比如,函数:
var fn = function () {
            alert(100);
        };
  fn.a = 10;
  fn.b = function () {
           alert(123);
     }//函数就作为对象被赋值了a、b两个属性

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88925.html

相关文章

  • JavaScript 闯关记》之对象

    摘要:属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性。客户端中表示网页结构的对象均是宿主对象。这里的函数称做构造函数,构造函数用以初始化一个新创建的对象。通过关键字和构造函数调用创建的对象的原型就是构造函数的属性的值。 对象是 JavaScript 的数据类型。它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值,因此我们可以把它看成是从字符串到值的映射...

    rozbo 评论0 收藏0
  • JS基础05「对象

    摘要:对象是的数据类型。对象是动态的,可以随时新增和删除自有属性。客户端中表示网页结构的对象均是宿主对象。提供第二个可选参数,用以对对象的属性进行进一步描述。没有原型的对象为数不多,就是其中之一。运算符的左侧是属性名字符串,右侧是对象。 对象是 JavaScript 的数据类型。它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值,因此我们可以把它看成是从字符串到值的映射。对象是...

    frolc 评论0 收藏0
  • JavaScript学习笔记(二) 对象函数

    摘要:在中函数是一等对象,它们不被声明为任何东西的一部分,而所引用的对象称为函数上下文并不是由声明函数的方式决定的,而是由调用函数的方式决定的。更为准确的表述应该为当对象充当函数的调用函数上下文时,函数就充当了对象的方法。 引言:当理解了对象和函数的基本概念,你可能会发现,在JavaScript中有很多原以为理所当然(或盲目接受)的事情开始变得更有意义了。 1.JavaScript...

    jeffrey_up 评论0 收藏0
  • JavaScript面向对象OOM 2(JavaScript 创建对象工厂模式和构造函数模式)

    摘要:都是构造函数模式创建的原生构造函数。使用构造函数创建对象经历了以下四个过程创建一个新对象构造函数的作用域交给新对象。   在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式。但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界上(程序中)的所有使用到的对象都使用一遍 var xxx = {} ,...

    you_De 评论0 收藏0
  • JavaScript面向对象OOM 2(JavaScript 创建对象工厂模式和构造函数模式)

    摘要:都是构造函数模式创建的原生构造函数。使用构造函数创建对象经历了以下四个过程创建一个新对象构造函数的作用域交给新对象。   在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式。但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界上(程序中)的所有使用到的对象都使用一遍 var xxx = {} ,...

    liuchengxu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<