博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于js的星星点点(构造函数和普通函数及class)
阅读量:6835 次
发布时间:2019-06-26

本文共 1476 字,大约阅读时间需要 4 分钟。

1. 构造函数和普通函数的区别

在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。 在函数调用的时候:

function fn() { }

构造函数:

1. new fn()
2 .构造函数内部会创建一个新的对象,即f的实例
3. 函数内部的this指向 新创建的f的实例
4. 默认的返回值是f的实例
复制代码

普通函数:

1. fn()
2. 在调用函数的内部不会创建新的对象
3. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4. 返回值由return语句决定复制代码

构造函数的返回值:

有一个默认的返回值,新创建的对象(实例);当手动添加返回值后(return语句):1. 返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)2. 返回值是复杂数据类型(对象)-->真正的返回值是这个对象复制代码

2. ES6语法中class和构造函数有什么区别

构造函数:

function handleMath(x, y) {    this.x = x,    this.y = y}handleMath.prototype.add = function(){    return this.x + this.y}var m = new handleMath(1, 2);console.log(m.add());复制代码

class语法:

class handleMath {    constructor(x, y){        this.x = x;        this.y = y;    }        add(){        return this.x + this.y;    }}var m = new handleMath(1, 2);console.log(m.add());复制代码

typeof handleMath 是 function class只是一个语法糖。

是不是有点感觉了?

在来看下继承:

构造函数实现:

function Animal() {   this.eat = function(){       console.log('dog eat')   }}function Dog() {   this.dark = function(){       console.log('dog dark')   }}Dog.prototype = new Animal();var dogNo1 = new Dog();dogNo1.eat();dogNo1.dark();复制代码

class 函数实现

class Animal{    constructor(name){        this.name = name;    }    eat (){       console.log('dog eat')   }}class Dog extends Animal{    constructor(name){        super(name);        this.name = name;    }    say() {        console.log(this.name + ' say')    }}var dogNo2 = new Dog('lili');dogNo2.say();dogNo2.eat();复制代码

总结:

  1. class语法糖更容易理解,更加语义化。
  2. 本质还是使用prototype。

转载地址:http://jrqkl.baihongyu.com/

你可能感兴趣的文章
fedora21 下解决IDEA中文无法输入、显示问题
查看>>
关于生态、大数据和穿戴设备以及IT创新的畅想
查看>>
openSuse 13.1 的触摸板,回来了
查看>>
saltstack之远程触发文件备份、回滚
查看>>
Struts2教程2:处理一个form多个submit
查看>>
php文件上传的经验分享
查看>>
MySQL SQL优化
查看>>
代码编辑器——sublime
查看>>
MogileFS高级应用(二)最后有疑问
查看>>
mail spy
查看>>
第19课:Spark高级排序彻底解密
查看>>
深入剖析Android系统
查看>>
网络部署原理加实验步骤
查看>>
Google 公司的 Java 语言编写规范
查看>>
linux系统启动级别
查看>>
bash编程-循环控制的结构
查看>>
Java-第三章-使用if选择结构实现,如果年龄够7岁或5岁并且是男,可以搬桌子
查看>>
使用 /proc 文件系统来访问 Linux 内核的内容
查看>>
如何对DB2数据库做性能分析?
查看>>
andriod之log打印
查看>>