javascript new作用 构造函数的作用 以及prototype的作用是什么?到现在还是不明白!求大神指点

原问题:javascript new作用 构造函数的作用 以及prototype的作用是什么?到现在还是不明白!求大神指点
分类:编程开发 > 最后更新时间:【2016-12-19 19:27:34】

最佳答案

new用来产生新的对象

prototype用来给类定义实例属性(实例变量和实例方法)

一个类(JavaScript中是函数),可以有实例方法,实例变量,类方法,类变量,首先搞清楚这些是什么

prototype可以用来给某个类(函数)添加实例方法和实例变量(虽然JavaScript中方法和变量没什么区别,都是可以作属性值的),而且在prototype上定义的属性,都会被这个类的实例继承,也会被子类(另一个函数)继承下来

现在定义一个类

function Person(name, age) {

this.name = name; // name和age实例属性

this.age = age;

}

Person.prototype.gender = "男"; // 实例属性,和name,age有区别,name和age,虽然可以被实例继承,不会被子类继承过去

Person.prototype.getName = function() { // 实例方法

alert(this.name);

}

详情请参考JavaScript权威指南(第六版),JavaScript高级程序设计(第三版),以及一些面向对象的相关知识

最佳答案由网友  城乡结合部来的  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
13

分享到:

其他回答

其它网友回答:
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱。

其它网友回答:
每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。

其它网友回答:
私有变量、函数

其它网友回答:
在具体说prototype前说几个相关的东东,可以更好的理解prototype的设计意图。之前写的一篇JavaScript 命名空间文章中提到过JavaScript的函数作用域,在函数内定义的变量和函数如果不对外提供接口,那么外部将无法访问到,也就是变为私有变量和私有函数。

其它网友回答:
var o=new Obj();
           console.log(o.a); //undefined
           console.log(o.fn); //undefined

其它网友回答:
复制代码 代码如下:

其它网友回答:

    推荐