js 的 prototype
js 的 prototype
激进黄瓜酱 发表于1年前
js 的 prototype
  • 发表于 1年前
  • 阅读 43
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: js的原型 继承 多态

> 本文只是个人写的一些笔记 不做教学 也没资格教别人 如果有大神看到有什么不对的地方欢迎指正 自学坑很多

> js对象分两种 一种是普通对象 一种是函数对象

//函数对象
function f1(){};
var f2 = function(){};
var f3 = new Function();

//普通对象
var o4 = {};
var o5 = new Object();
var o6 = new f1();

//验证
console.log(typeof f1);  //function
console.log(typeof f2);  //function
console.log(typeof f3);  //function
console.log(typeof o4);  //object
console.log(typeof o5);  //object
console.log(typeof o6);  //object

> 对象的prototype

console.log(typeof f1.prototype); //Object
console.log(typeof f2.prototype); //Object
console.log(typeof f3.prototype); //Object
console.log(typeof o4.prototype); //undefined
console.log(typeof o5.prototype); //undefined
console.log(typeof o6.prototype); //undefined

> 函数对象都有 prototype 属性 指向了一个Object(普通对象) 普通对象的prototype 指向了 undefined 也是原型的终点

> 单独说说Object Function两个对象 Function.prototype 还是 function 再往上 就是undefined 了

onsole.log(typeof Object); //function
console.log(typeof Function); //function
console.log(typeof Object.prototype); //object
console.log(typeof Function.prototype); //function
console.log(typeof Function.prototype.prototype); //undefined

> 理解一下这段代码


//定义一个函数o10
var o10 = function(){
  this.name = "haha";
}
//为函数的原型对象添加新属性
o10.prototype.say = function(){
  console.log(this.name);
}

//实例化函数对象 并调用方法 本身没有say 那么 调用原型的say
var o11 = new o10();
o11.say();  //haha

//定义一个函数o12 并制定 o12 的原型对象为 o11
var o12 = function(){};
o12.prototype = o11;

//实例化 o12 并调用say
var o13 = new o12();
o13.say();//haha

//为o12的原型添加新的say方法
o12.prototype.say = function(){
  console.log("iiiiiii");
}

o13.say();//iiiiiii
共有 人打赏支持
粉丝 3
博文 11
码字总数 5088
×
激进黄瓜酱
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: