为了账号安全,请及时绑定邮箱和手机立即绑定

大神过来!

大神过来!

Drenched_belief 2016-10-01 21:38:05
请看:举个例子:  function Book(title,pages,isbn){        this.title = title;        this.pages = pages;        this.isbn = isbn;}资料中说:对象是类的实例,例如我们声明了一个类来表示书。我目前的理解,上面的代码就是一个函数,title,pages, isbn是它的参数。 类是什么意思? 上面的只是声明了一个函数而已啊,为什么说声明一个类?
查看完整描述

8 回答

?
输输输

TA贡献22条经验 获得超21个赞

function Book(title,pages,isbn){
    this.title = title;
    this.pages = pages;
    this.isbn = isbn;
}

var b1 = Book(1, 2, 3);      // Book 是函数
var b2 = new Book(4, 5, 6);  // Book 是类

console.log(b1.title); // TypeError: Cannot read property 'title' of undefined
console.log(b2.title); // 4

这样,就区分了类与函数

查看完整回答
2 反对 回复 2016-10-03
?
输输输

TA贡献22条经验 获得超21个赞

用 new 实例化就是一个类,不用 new 的时候只是一个普通的函数

查看完整回答
1 反对 回复 2016-10-03
?
Simon站起来

TA贡献5条经验 获得超1个赞

你的理解是对的,看到评论就知道很多人对这个理解错了,js中没有严格意义上类的概念,但它有构造函数的概念,就是首字母大写的函数(当然也可以小写,但这是规范问题),有了构造函数也就是说你可以通过new的方式来得到实例,那么这个实例就可以访问,title,pages,isbn等形参了。这个就是创造对象的方法之一,另外一种方式是工厂模式,你也可以结合起来理解。

查看完整回答
1 反对 回复 2016-10-02
?
大咪

TA贡献785条经验 获得超332个赞

不要想那么难,所谓的javascript里的类和java一样,你要知道对应的就是type这个英文单词,而类即使类型的简称而已。。。声明了一个函数就是你相当于定义了书这个类型。。并把它作为函数去使用了而已。。。

查看完整回答
1 反对 回复 2016-10-02
?
南绝枫

TA贡献2条经验 获得超0个赞

肯定有类啊,这个函数的功能就是用来给类进行实例赋值的啊,而且你的book类的属性起码包括了title,pages和isbn

查看完整回答
反对 回复 2016-10-02
?
stone310

TA贡献361条经验 获得超191个赞

先理解这一段话:任何函数,function aaa(){},当创建var b=new aaa()的时候,b的实例指向a的原型,(b可以调用a的属性和方法)这时我们把aaa函数称为构造函数,构造函数首个字母一般用大写表示,所以我们这么写:function Aaa(){};

然后JS本身并没有类的概念,但是我们用构造函数可以模拟出类的效果,所以你可以把构造函数看成类;

查看完整回答
反对 回复 2016-10-02
  • Drenched_belief
    Drenched_belief
    我还是不明白,function aaa(){},这个我知道,新声明了一个函数。 var b = new aaa().我有点懵,我猜的是这个aaa函数赋给了一个变量b,aaa函数也可以看作一个对象,那么b就可以调用aaa这个函数的属性和方法。如果是这样,aaa 函数应该是花括号来表示函数啊,不是括号啊。请教大神。
?
MarlboroKay

TA贡献189条经验 获得超236个赞

你声明了一个book类。 你可以试着console.log()输出一下他的title. 望采纳
查看完整回答
反对 回复 2016-10-01
?
雪颲

TA贡献220条经验 获得超117个赞

。。。上面那个他就是函数啊

查看完整回答
反对 回复 2016-10-01
  • 8 回答
  • 0 关注
  • 1689 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信