簡體   English   中英

是否每個實例都創建一個在構造函數中定義的新方法?

[英]Does every instance creates a new method, which is defined in a constructor?

給定構造函數

function Person(name) {
  this.name = name;
  this.greeting = function() {
    alert('Hi! I\'m ' + this.name + '.');
  };
}

我們創建兩個實例。 例如

var person1 = new Person('Bob');
var person2 = new Person('Sarah');

每個實例創建多少個問候方法?

每個對象僅創建一個問候語方法,因為構造函數中只有一個方法。

將有一個功能,但是創建人員時有許多閉包。 由於javascript在處理閉包方面非常有效,因此沒有太多的開銷,通常應該不會有問題。 但是,如果要創建數以百萬計的對象,最好將它們移至原型中,然后將只有一個閉包。

每個人都有一個greeting()方法(也稱為:“成員函數”)。

例如

person1.greeting(); #Output: 'Hi I'm Bob.'
person2.greeting(); #Output: 'Hi I'm Sarah.'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM