JS如何判断某个对象的属性是不是一个函数

JavaScript019

JS如何判断某个对象的属性是不是一个函数,第1张

使用typeof关键字下面给出一份演示

<script type="text/javascript">

    var d={

        a:10,

        b:function(){console.log("11")}

    }

    console.log(typeof d.b)

    //在控制台看到是打印的function

    if(typeof d.b=="function"){

        alert("该属性是一个函数")

    }

</script>

这不是很方便吗?这样就可以直接被函数做参数传到需要回调的其他函数中使用,java中的接口调用需要实例化,js就不需要了呀。

函数自定义方法,其实可以把你说的函数看做java中的类。比如:

function Example(name){this.name=name}

Example.prototype.setName=function(name){

this.name=name

return this

}

Example.prototype.getName=function(){

return this.name

}

new Example('name').getName()//name

new Example('name').setName('name1').getName()//name1

无论是js中的Array,String……都有类似的prototype类型描述对象,当这些类型实例化以后可直接调用prototype中定义的方法或属性,也可覆盖。在实例化中prototype会被简单化成__proto__对象,可以通过console.log进行观察。关于继承,所有的js对象都有一个顶级的被继承对象,Object,方法有很多,通常被提到的就是定义类型函数时给prototype赋个你想继承的类型的实例化object,但这种方法很蠢,自己看书,搜索,实践吧,手机打字太累了。

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

凡是构造函数都是可以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)