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高级程序设计(第三版),以及一些面向对象的相关知识
其他回答
其它网友回答:
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱。
其它网友回答:
每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。
其它网友回答:
私有变量、函数
其它网友回答:
在具体说prototype前说几个相关的东东,可以更好的理解prototype的设计意图。之前写的一篇JavaScript 命名空间文章中提到过JavaScript的函数作用域,在函数内定义的变量和函数如果不对外提供接口,那么外部将无法访问到,也就是变为私有变量和私有函数。
其它网友回答:
var o=new Obj();
console.log(o.a); //undefined
console.log(o.fn); //undefined
其它网友回答:
复制代码 代码如下:
其它网友回答: