最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javascript学习笔记6prototype的提出_基础知识

来源:动视网 责编:小采 时间:2020-11-27 20:46:49
文档

Javascript学习笔记6prototype的提出_基础知识

Javascript学习笔记6prototype的提出_基础知识:首先我们继续上文的代码,我们来把这段代码延伸一下: 代码如下: var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert(My name is + this.nam
推荐度:
导读Javascript学习笔记6prototype的提出_基础知识:首先我们继续上文的代码,我们来把这段代码延伸一下: 代码如下: var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert(My name is + this.nam


首先我们继续上文的代码,我们来把这段代码延伸一下:
代码如下:

var Person = function (name, age) {
this.name = name;
this.age = age;
this.Introduce = function () {
alert("My name is " + this.name + ".I'm " + this.age);
};
};
var person1 = new Person("飞林沙", 21);
var person2 = new Person("kym", 26);
alert(person1.Introduce == person2.Introduce);

结果弹出false。也就是说,这两个对象的方法是不同的方法。那么我们知道,在C#中,每个对象会维护着一个方法表,可是方法表应该指向同一块地址。如果是这样的话,那当我们声明了100个对象,是不是要建立100个对象拷贝,对空间是不是一个很大的浪费呢?

于是我们就想了这样的解决办法,用prototype:
代码如下:

var Person = function (name, age) {
this.name = name;
this.age = age;
};
Person.prototype.Introduce = function () {
alert("My name is " + this.name + ".I'm " + this.age);
}
var person1 = new Person("飞林沙", 21);
var person2 = new Person("kym", 26);
alert(person1.Introduce == person2.Introduce);


这样就可以了。所以你还会再说是否用prototype都是一样的么?其实我以前也是这么理解的,在这次偶然的试验中看到了这个问题。

文档

Javascript学习笔记6prototype的提出_基础知识

Javascript学习笔记6prototype的提出_基础知识:首先我们继续上文的代码,我们来把这段代码延伸一下: 代码如下: var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert(My name is + this.nam
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top