原型函数的类型
来源:互联网 发布:中国国防数据 编辑:程序博客网 时间:2024/05/16 06:07
1.原型函数的理解图
2.声明一个函数就会自动创建一个prototype属性,这个属性指向这个函数的原型对象,
而这个函数的原型的对象默认有个constructor属性,指向最初创建的函数
3.原型函数的变形
一般形式
function Person(){ } Person.prototype.name = "Tom"; Person.prototype.speak = function(){ console.log("abc"); } var p1 = new Person(); console.log(Person.prototype.constructor === Person); //true console.log(p1.__proto__ === Person.prototype); //true console.log(p1.hasOwnProperty("name")); console.log(p1.hasOwnProperty("age")); console.log("sex" in p1);
判断对象的属性位置
function position(obj,proName){ if(obj.hasOwnProperty(proName)){ return "在对象上"; }else if(proName in obj){ return "在原型上"; }else{ return "不存在"; } } console.log(position(p1,"name")); console.log(position(p1,"age")); console.log(position(p1,"sex"));
组合模型,解决原型的方法共用问题
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.speak = function(){ console.log(this.name); } var p1 = new Person("Tom",22); var p2 = new Person("Rose",20); console.log(p1.speak());
动态原型
function Person(name,age){ this.name = name; this.age = age; // 避免每次创建一个对象时重新创建这个方法覆盖之前的方法 if(!Person.prototype.eat){ Person.prototype.eat = function(){ console.log(this.name); } } if(!Person.prototype.speak){ Person.prototype.speak = function(){ console.log(this.age); } } } var p1 = new Person("Tom",22); var p2 = new Person("Rose",23); console.log(p1.eat == p2.eat);
更换原型
function Person(opt){ this._init(opt); } Person.prototype = { _init : function(opt){ this.name = opt.name; this.age = opt.age; this.sex = opt.sex; }, eat : function(){ }, speak : function(){ } } var p1 = new Person({ name : "Tom", age : 22, sex : "男" }); var p2 = new Person({ name : "Tim", age : 21, sex : "女" });
阅读全文
0 0
- 原型函数的类型
- 传说的 类型 ~原型
- 函数的原型。。。原型链
- strcpy的函数原型
- strcpy 函数的原型
- Perl 的函数原型
- printf的函数原型
- strcpy函数的原型
- main函数的原型
- UIApplicationMain函数的原型
- 举个构造函数和原型模式组合使用定义用户类型的例子,
- sinal函数原型的分析
- WinMain函数的原型解读
- Delphi QuotedStr函数的原型
- 几个常用的函数原型
- 常见字符串函数的原型!!!
- Javascript原型相关的函数
- 对象/函数对象的原型
- ZZULIOJ【2178】GJJ来签到【水题】
- struts2.5之通配符使用报错
- [SDUT](3379)数据结构实验之查找七:线性之哈希表 ---哈希查找(查找)
- Elimination(DP)
- Java快排实现
- 原型函数的类型
- Hdu 1713 相遇周期
- 第一次机房收费系统错误总结
- 简单计时器的制作
- hdu
- 基于距离的地图聚类算法, Java实现
- bzoj3289 Mato的文件管理
- CityList
- css选择器的优先级