在JS中,函数与对象的区别是什么呢?

JavaScript010

在JS中,函数与对象的区别是什么呢?,第1张

在js中函数就是一个对象,函数在没有返回值时默认返回的一个对象,一个函数也可以作为参数传递给另外一个函数,这种方式通常被叫做 callback 模式。另外推荐给你一本书《JavaScript.Patterns》里边对日常代码编写规范做了很好的解释,对于js语言也解释的很详细,如果你已经有一定的js基础了推荐你看看这本书

所有的函数都是一个对象,所有的对象,都可以用构造函数创建。

凡是构造函数都是可以new的,也就是说都可以成为对象,这里当然要给Function类型的对象取个名字,它就叫“Function对象”。

函数

function fun(){

    // 定义变量时没有使用关键字

    var atguigu = "this is atguigu"

    // 在函数作用域访问变量 

    console.log( atguigu )

    }

    

    fun()

构造函数----》new成为Function对象

function Fun() {

   this.name = '小王'//定义属性

   this.age = '18'//定义属性

   this.fn = function () {

   return 1999

   }

}

对象

var obj1 = {

    name : '手速快',//属性

    age :  27,//属性

    fun :function () {//方法

    return  10

   }

}

console.log(obj1)

在JavaScript中定义对象可以采用以下几种方式:

1.基于已有对象扩充其属性和方法

2.工厂方式

3.构造函数方式

4.原型(“prototype”)方式

5.动态原型方式 -- 1.基于已有对象扩充其属性和方法

object.name = "zhangsan"

object.sayName = function(name)

{

       this.name = name

       alert(this.name)

}

object.sayName("lisi") -- 2.工厂方式 

function createObject() 

{

       var object = new Object()

       object.username = "zhangsan"

       object.password = "123"

       object.get = function()

       {

              alert(this.username + ", " + this.password)

       }

       return object

}

var object1 = createObject()

var object2 = createObject()

object1.get()

 -- 采用带参数的构造方法:

function createObject(username, password)

{

       var object = new Object()

       object.username = username

       object.password = password

       object.get = function()

       {

              alert(this.username + ", " + this.password)

       }

       return object

}

var object1 = createObject("zhangsan", "123")

object1.get()