亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

js筆記三十七之函數的三種角色

標簽:
JavaScript
function Fn(){    this.x = 100;
}
Fn.prototype.getX() = function(){    console.log(this.x);
}var f = new Fn;

函数本身也会有一些自己的属性:
length: 0 形参的个数
name: "Fn" 函数名
prototype 类的原型,在原型上定义的方法都是当前Fn这个类实例的公有方法
__ proto__: 把函数当做一个普通对象,执行Function这个类的原型

函数在整个js中是最复杂也是最重要的知识

  1. 一个函数存在了多面性:

    1. "普通函数": 它本身就是一个普通的函数,执行的时候形成私有的作用域(闭包),形参赋值,预解释,代码执行,执行完成后栈内存销毁/不销毁

    2. "": 它有自己的实例,也有一个叫做prototype属性是自己的原型,它的实例都可以指向自己的原型

    3. "普通对象": 和 var obj = {}中的obj一样,就是一个普通对象,它作为对象可以有一些自己的私有属性,也可以通过__ proto__找到Function.prototype

三者之间互不冲突,没有任何关系

function Fn(){    var num = 500;    this.x = 100;
};
Fn.prototype.getX() = function(){    console.log(this.x);
};
Fn.aaa = 1000;var f = new Fn; // Fn中的this是ff.num  // -> undefinedf.aaa  // -> undefined var res = Fn(); // Fn中的this是windowres // undefinedFn.aaa // 1000



作者:uplyw
链接:https://www.jianshu.com/p/e391c71d74c6


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消