开发者社区> 问答> 正文

js对象中自身声明的方法和属性与prototype声明的对象有什么差别?

如题,
比如说这两个东东:

Array.isArray() // Array.prototype.isArray() 这样就是错的
Array.prototype.map // Array.map 错的,没有这个属性
我们知道js对象中总会有个prototype的东东,利用它可以进行原型的继承等等一些高级操作。

可是问题来了,
1、除了使用prototype来为对象动态设置属性&方法外,啥时候用prototype呢?

2、使用prototype和不使用prototype有什么区别呢?

举个例子:

function People() {}
var p = new People();
p.name = 'Tom';
p // People {name: 'Tom'}
// p.prototype.age = 7; // 错误
People.prototype.age = 7;
p // People {name: 'Tom'} // 木有age这个显式的属性,被加在__proto__中
p.age // 7
// p.prototype.age // 错误
People.prototype.age // 7

展开
收起
a123456678 2016-03-13 19:02:50 2516 0
1 条回答
写回答
取消 提交回答
  • 自身声明的只是在对象自己身上,prototype中声明的每个构造函数创建的对象都会有。建议具体看下原型链相关知识

    2019-07-17 19:03:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载