原生 js ----构造函数

javascript 是一种基于对象的语言,它包含5中原生数据类型:

  • number(数值类型)
  • boolean(布尔值类型)
  • string(字符串类型)
  • null(空)
  • undefined(未定义)

    除此之外,其他的都是对象,函数也是一个对象;

function fn(){
  //这是一个函数声明,函数是一个特殊的对象
}

构造函数定义
构造函数是一个普通的函数,与其他函数没有任何区别,可以理解为 函数==构造函数,它只是概念上的一个定义,使用它用来实例化对象。

对于JavaScript的内置对象,Object、Array、Date等等这些都是构造函数。

function Fn(){
}

var f = new Fn() //实例化对象

使用new运算符返回的对象并不一定是实例本身,也可以在构造函数用使用return改变返回值:

function Obj() {
  this.a = 1;
  return { a: 2 };
}
var o = new Obj(); // o并不是Obj的实例
console.log(o.a); // 输出2

前面说到了函数也是一个对象,在JavaScript的内置对象中,所有的函数对象都是Function构造函数的实例,比如:Object、Array等等,

使用 instanceof 这个运算符就可以校验

  • instanceof运算符返回一个指定的对象是否一个类的实例,格式如:A instanceof B。其中,左操作数必须是一个对象,右操作数必须是一个类(构造函数);
  • 判断过程:如果函数B在对象A的原型链中被发现,那么instanceof操作符将返回true,否则返回false。
alert(Function instanceof Function); // Function函数对象 本身就是自己的一个实例
alert(Object instanceof Function); // Object函数对象 是 Function构造函数的一个实例

alert(arr instanceof Array);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值