2011-10-25 129 views
46

Vì vậy, tôi chỉ muốn biết nếu có ai biết ý nghĩa cụ thể và cách sử dụng câu lệnh init() trong JavaScript, không bao giờ thực sự biết, là một newb.Việc sử dụng init() trong JavaScript là gì?

+0

init chỉ là cách viết tắt để bắt đầu. Thông thường nó được sử dụng để tạo ra một "đối tượng mới()". Giống như hàm init() trong jQuery trả về một đối tượng jQuery mới. – William

+1

@LiamWilliam - khởi tạo – UpTheCreek

Trả lời

90

JavaScript không được tích hợp chức năng init(), tức là, nó không phải là một phần của ngôn ngữ. Nhưng nó không phải là không phổ biến (trong rất nhiều ngôn ngữ) cho các lập trình viên riêng lẻ để tạo ra hàm init() của riêng mình cho các công cụ khởi tạo.

Chức năng init() cụ thể có thể được sử dụng để khởi tạo toàn bộ trang web, trong trường hợp này có thể được gọi từ chế độ document.ready hoặc onload hoặc có thể khởi tạo một loại đối tượng cụ thể hoặc ... , bạn đặt tên cho nó.

Bất kỳ điều gì cho trước init() đặc biệt thực sự tùy thuộc vào bất kỳ người nào viết nó cần thiết để thực hiện. Một số loại mã không cần bất kỳ khởi tạo nào.

function init() { 
    // initialisation stuff here 
} 

// elsewhere in code 
init(); 
+14

Tôi thích cách bạn diễn đạt điều này: rất rõ ràng. Tôi đang xóa câu trả lời của mình và +1 – attack

+0

Đây có phải là trường hợp không? Tôi có một số mã bây giờ làm điều gì đó như thế này: 'var bEvent = function() {...}();' và sau đó, '$ (function() { // Khởi chạy hàm bEvent.init() }) ' – Jeff

+1

@ Jeff - Trường hợp vẫn còn là gì? Trong ví dụ của bạn, 'bEvent' phải tham chiếu đến một đối tượng có phương thức' init() ', mà bạn sẽ thấy được tạo ra ở đâu đó trong phần thân hàm mà bạn không hiển thị. – nnnnnn

16

Trong JavaScript khi bạn tạo ra bất kỳ đối tượng thông qua một cuộc gọi constructor như dưới đây

bước 1: tạo một hàm nói Person ..

function Person(name){ 
this.name=name; 
} 
person.prototype.print=function(){ 
console.log(this.name); 
} 

bước 2: tạo một thể hiện cho chức năng này ..

var obj=new Person('venkat') 

// dòng trên sẽ khởi tạo chức năng này (Người) và trả về và đối tượng mới được gọi là Person {name: 'venkat'}

nếu bạn không muốn phải nhanh chóng chức năng này và gọi tại cùng một time.We cũng có thể làm như dưới đây ..

var Person = { 
    init: function(name){ 
    this.name=name; 
    }, 
    print: function(){ 
    console.log(this.name); 
    } 
}; 
var obj=Object.create(Person); 
obj.init('venkat'); 
obj.print(); 

ở trên phương pháp init sẽ giúp đỡ trong việc khởi tạo các thuộc tính đối tượng. Về cơ bản init giống như một lời gọi hàm tạo trên lớp của bạn.

-1

NB. Tên hàm xây dựng nên bắt đầu bằng chữ cái viết hoa để phân biệt chúng với các hàm bình thường, ví dụ: MyClass thay vì myClass.

Hoặc bạn có thể gọi init từ hàm xây dựng của bạn:

var myObj = new MyClass(2, true); function MyClass(v1, v2) { // ... // pub methods this.init = function() { // do some stuff }; // ... this.init(); // <------------ added this }

Hoặc đơn giản hơn bạn chỉ có thể sao chép cơ thể của init chức năng đến cuối của hàm constructor. Không cần phải thực sự có chức năng init nếu nó chỉ được gọi một lần.

+1

Và hãy kiểm tra http: // stackoverflow.com/questions/3526916/javascript-class-call-method-khi-đối tượng-khởi tạo –

Các vấn đề liên quan