JavaScript常見的函數(shù)中的屬性與方法總結(jié)
當(dāng)定義和調(diào)用函數(shù)時(shí),JavaScript 函數(shù)對(duì)象會(huì)自動(dòng)具有一些特定的屬性,以下是一些常見的屬性和方法。
1.arguments
arguments 是一個(gè)類數(shù)組對(duì)象,它包含了函數(shù)調(diào)用時(shí)傳遞的參數(shù)。它允許你在函數(shù)內(nèi)部訪問傳遞給函數(shù)的參數(shù)列表,即使在函數(shù)定義時(shí)未明確聲明這些參數(shù)。可以通過索引訪問 arguments 對(duì)象中的參數(shù)值,也可以使用 arguments.length 獲取傳遞的參數(shù)個(gè)數(shù)。
function exampleFunc(a, b) { console.log(arguments[0]); // 訪問第一個(gè)參數(shù) console.log(arguments.length); // 參數(shù)的個(gè)數(shù) } exampleFunc(1, 2, 3); // 1,3
注意:在es6開始,推薦使用剩余參數(shù)或者使用命名參數(shù)來(lái)代替使用 arguments 對(duì)象。
2.length
length 屬性返回函數(shù)聲明時(shí)的形參數(shù)量,即函數(shù)期望接收的參數(shù)個(gè)數(shù)。它表示函數(shù)定義時(shí)定義的形參個(gè)數(shù),不包括剩余參數(shù)。
function exampleFunc(a, b, c) { // 函數(shù)體 } console.log(exampleFunc.length); // 3
3.name
name 屬性返回函數(shù)的名稱。對(duì)于具名函數(shù),它返回函數(shù)的實(shí)際名稱。
function namedFunction() { // 函數(shù)體 } const anonymousFunction = function() { // 函數(shù)體 } console.log(namedFunction.name); // namedFunction console.log(anonymousFunction.name); // anonymousFunction
這些屬性使得函數(shù)對(duì)象在運(yùn)行時(shí)具有額外的元數(shù)據(jù),可以根據(jù)需要訪問這些屬性來(lái)獲取有關(guān)函數(shù)的信息,例如函數(shù)的參數(shù)、參數(shù)個(gè)數(shù)和名稱。這些屬性在編寫靈活和通用的函數(shù)時(shí)非常有用。
4.caller
caller 屬性返回一個(gè)調(diào)用當(dāng)前函數(shù)的函數(shù)引用。如果當(dāng)前函數(shù)是在全局作用域中被調(diào)用的,那么 caller 將返回 null。該屬性在嚴(yán)格模式下被禁用。
function outerFunc() { innerFunc(); } function innerFunc() { console.log(innerFunc.caller); // outerFunc } outerFunc();
5.prototype
prototype 屬性允許你向函數(shù)對(duì)象添加新的屬性和方法。它用于創(chuàng)建基于原型繼承的對(duì)象。
function Person(name) { this.name = name; } Person.prototype.sayHello = function() { console.log("Hello, " + this.name); }; const person = new Person("John"); person.sayHello(); // Hello, John
6.bind()
bind() 方法返回一個(gè)新的函數(shù),該函數(shù)在調(diào)用時(shí)將指定的 this 值綁定到提供的參數(shù),用于創(chuàng)建函數(shù)的新實(shí)例并永久性地綁定函數(shù)的上下文。
const obj = { name: "John", greet: function() { console.log("Hello, " + this.name); } }; const boundFunc = obj.greet.bind(obj); boundFunc(); // Hello, John
類似的還有 apply()、call()、toString() 等。
7.constructor
constructor 屬性返回創(chuàng)建函數(shù)對(duì)象的原型對(duì)象的引用。
function Person(name) { this.name = name; } const person = new Person("John"); console.log(person.constructor); // 輸出:Person
到此這篇關(guān)于JavaScript常見的函數(shù)中的屬性與方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS簡(jiǎn)單實(shí)現(xiàn)數(shù)組去重的方法示例
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)數(shù)組去重的方法,涉及javascript數(shù)組的遍歷、判斷及賦值操作,代碼非常簡(jiǎn)單易懂,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03JavaScript實(shí)現(xiàn)答題評(píng)分功能頁(yè)面
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)答題評(píng)分功能頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06Javascript模擬scroll滾動(dòng)效果腳本
項(xiàng)目需要寫了一段模擬Scroll滾動(dòng)代碼,分享的同時(shí),我有些疑問,希望大家能幫忙解決,代碼如下2008-09-09javascript 具名函數(shù)的四種調(diào)用方式 推薦
看四種方式執(zhí)行結(jié)果沒有區(qū)別。但如果函數(shù)有返回值的話,用new方式調(diào)用時(shí)可能會(huì)讓你有些失望。2009-07-07簡(jiǎn)單的兩種Extjs formpanel加載數(shù)據(jù)的方式
這篇文章介紹了兩種Extjs formpanel加載數(shù)據(jù)的方式,有需要的朋友可以參考一下2013-11-11微信小程序 wx:for遍歷循環(huán)使用實(shí)例解析
這篇文章主要介紹了微信小程序 wx:for遍歷循環(huán)使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09