1. 程式人生 > >js裡面的例項方法和靜態方法

js裡面的例項方法和靜態方法

靜態方法是可以直接用類名.方法名去呼叫的,而例項方法是不可以的,他必須要用例項才可以去呼叫,那麼,在js的世界裡面會不會也有類似的一個東西呢?實際上是有的,看一看以下的方法:

var Person=function(){};
Person.say=function(){
    console.log('I am a Person,I can say.')
};
Person.prototype.getName=function(name){
    console.log('My name is '+name);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

以上的程式碼,實際上很簡單,首先是定義了一個function,js裡面像上面那樣定義一個function實際上是定義了一個類,接下來,我給你這個類添加了一個say的方法,然後接著給這個類的prototype添加了一個getName的方法,所有的類都是會有一個prototype這樣的屬性,這個屬性指向的是object,這個是屬於js原型鏈的問題,在這裡我就不闡述了。好了,我現在來按照以下呼叫一下:

Person.say();
Person.getName('Carl');
  • 1
  • 2

是不是發現,第一個可以正常執行,第二個會報錯,再來看看下面的程式碼:

var carl=new Person;
carl.say();
carl.getName('Carl');
  • 1
  • 2
  • 3

是不是和第一段程式碼剛好相反,那麼這個地方實際上我們就看出來了,say方法是’.’在類上面的,所以,它實際上是一個靜態方法,那麼當然是可以直接通過類進行訪問的(這裡的靜態方法都是public的),所以第一段的第一句話是不會抱錯的,而getName這個方法實際上是在prototype上面的,只有建立一個例項的情況下,才可以通過例項進行訪問。
所以綜上所述,定義在直接用類名(這裡就是方法名)’.’一個方法,那麼這個實際上建立的是一個靜態方法;而用prototype’.’的一個方法,實際上建立的是一個例項方法,例項方法是需要建立例項物件進行訪問的,所以,以上就是我想說的,js裡面的靜態方法和例項方法,同樣,靜態屬性和例項屬性也是這個道理。

--------------------- 本文來自 Carl大神 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/oryjk/article/details/46901035?utm_source=copy

相關推薦

js裡面例項方法靜態方法

靜態方法是可以直接用類名.方法名去呼叫的,而例項方法是不可以的,他必須要用例項才可以去呼叫,那麼,在js的世界裡面會不會也有類似的一個東西呢?實際上是有的,看一看以下的方法: var Person=function(){}; Person.say=function(){

Python的例項方法、類方法靜態方法之間的區別與聯絡

Python的例項方法、類方法和靜態方法 class Test: def test1(self): print('test......') @classmethod def test2(cls): print('test2......c

方法例項方法靜態方法

類方法、例項方法和靜態方法,實質是記憶體空間不一樣,三種方法的建立和呼叫需要注意,同樣的,類屬性和例項屬性,類物件和例項物件都需要理解,公有屬性可以設定為類屬性,特有屬性可以設定為例項屬性,類方法、例項方法和靜態方法都放在類物件中,例項物件可直接呼叫。 1 # coding:utf-8 2 3

Python 的例項方法、類方法靜態方法

Python 的例項方法、類方法和靜態方法 轉載請註明出處:https://blog.csdn.net/jpch89/article/details/84442713 文章目錄 Python 的例項方法、類方法和靜態方法 0. 參考資料

JNI/NDK開發指南(六)——C/C++訪問Java例項方法靜態方法

        通過前面5章的學習,我們知道了如何通過JNI函式來訪問JVM中的基本資料型別、字串和陣列這些資料型別。下一步我們來學習原生代碼如何與JVM中任意物件的屬性和方法進行互動。比如原生代碼呼叫Java層某個物件的方法或屬性,也就是通常我們所說的來自C/C++層本地函

5分鐘搞懂Python中例項方法,類方法靜態方法

1. 例項方法: 由例項物件呼叫且至少有一個self引數; 執行例項方法時,自動將呼叫該方法的物件賦值給self. 2.類方法: 由類物件呼叫且至少有一個cls引數; 執行類方法時,自動將呼叫該方法的類賦值給cls. 3.靜態方法: 由類呼叫, 沒有預設引數. class Foo(object

php 普通方法靜態方法

普通 ntc 靜態 urn ade ati 標識符 count() student <?php header(‘Content-Type: text/html; charset=utf-8‘); class Student { public static funct

jdk1.8新特性 : 接口中可以有普通方法(非靜態方法)靜態方法 , 顛覆了之前我的理解 : 接口中只能有共有常量抽象方法的概念,後面必須要加一句jdk1.71..7之前

@override 編譯 sys 接口 blank new style nts highlight 看到jdk某些接口中存在default方法,於是... http://shaomeng95.iteye.com/blog/998820 為什麽接口只能是公有常量? p

一文詳解python的類方法,普通方法靜態方法

http 接下來 方法調用 pytho 類和實例 訪問類 靜態 都是 com   首先形式上的區別,實例方法隱含的參數為類實例self,而類方法隱含的參數為類本身cls。 靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法。   所以邏輯上,類方法被類調用,實例方法

synchronized修飾普通方法靜態方法

對象 -s 修飾 style 安全 安全問題 才會 htable 會有 首先,要知道,synchronized關鍵字修飾普通方法時,獲得的鎖是對象鎖,也就是this。而修飾靜態方法時,鎖是類鎖,也就是類名.class。 synchronized修飾普通方法 Synchron

C# 動態方法靜態方法的區別

內存 法則 靜態 操作類 ret 我們 數據庫操作類 body method C# 動態方法和靜態方法的區別 (轉) 動態方法與靜態方法的區別: 1,使用方法上的區別:動態方法,在使用時需要先創建實例,才能調用實例方法,而靜態方法則不需要,直接使用即可。 示例代碼如下

20180727 (面向對象的屬性 類方法靜態方法)

python 復用性 減少 整體 調用 參數 空間 遇到 @property 一.屬性:將一個方法,偽裝成一個屬性,在代碼的級別上沒有本質的提升,但是可以讓其看起來更合理 property:類似於bmi這種,看起來像名詞,實際是需要計算的(動詞),或者遇到周長或者面積這種詞

Java 8——接口中個的默認方法靜態方法

string 深入 col 函數 cti code 引用 lan mov 在Java SE 8之前,interface只是事物的抽象,用來定義統一的抽象事物和描述事物的抽象行為和屬性。 但是在Java SE 8中,增加了可以在interface中增加默認實現的行為和事物的靜

python之property、類方法靜態方法

new 增刪改查 turn 引用 dict 沒有 不同的 保護 實例化 一、完整的property1、定義一個方法被偽裝成屬性之後,應該可以執行一個屬性的增刪改查操作,增加和修改就對應著被setter裝飾的方法,刪除一個屬性對應著被deleter裝飾的方法。 @prope

JDK8.0接口中的默認方法靜態方法

div inter pri 默認方法 over main 值類型 Speak 普通 我們在接口中通常定義的方法是抽象方法,即沒有方法體,只有返回值類型和方法名:(public abstract) void Method(); 類在實現接口的時候必須重寫抽象方法才可以 jdk

Python中的類方法靜態方法

作者:黎智煊 ,叩丁狼高階講師。本文為原創文章,轉載請註明出處。     類方法 是類物件所擁有的方法,需要用修飾器@classmethod來標識其為類方法,對於類方法,第一個引數必須是類物件,一般以cls作為第一個引數(當然可以用其他名稱的變數作

python:類方法靜態方法

1.類方法: 類屬性就是針對類物件定義的屬性                    使用賦值語句在class關鍵字下方可以定義類屬性      

python筆記(封裝(含類方法靜態方法))

一、封裝: 1、廣義上面向物件的封裝:程式碼的保護,面向物件的思想本身就是一種封裝 2、只讓自己的物件能呼叫自己類的方法 3、狹義上的封裝 – 面向物件三大特性 4、屬性和方法都藏起來,不讓你看見 class Person: def __init__(self,name,pass

Python學習手冊之數據封裝、類方法靜態方法

tle tro 變量 無法 code att span method 私有 在上一篇文章中,我們介紹了 Python 的內部方法、操作符重載和對象生命周期,現在我們介紹 Python 的數據封裝、類方法和靜態方法。查看上一篇文章請點擊:https://www.cnblogs

方法靜態方法

類方法     定義:使用裝飾器@classmethod。第一個引數必須是當前類物件,該引數名一般約定為“cls”,通過它來傳遞類的屬性和方法(不能傳例項的屬性和方法);     呼叫:例項物件和類物件都可以呼叫。  類方法應用場景: 1,類中有些方法