11 EYLÜL 2008, PERŞEMBE
JavaScript özel yöntemler
Genel bir yöntem JavaScript ile bir sınıf yapmak için bir şey gibi yapardım:
function Restaurant()
{
}
Restaurant.prototype.buy_food = function()
{
// something here
}
Restaurant.prototype.use_restroom = function()
{
// something here
}
Sınıfımdan kullanıcısı olabilir:
var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();
Nasıl kamu buy_food ve use_restroom benim yöntemleri çağırabilir ama sınıf kullanıcılar dışarıdan arayamaz özel bir yöntem oluştururum.
Diğer bir deyişle, yapmak için yöntem çok başarmak istiyorum:
Restaurant.prototype.use_restroom = function()
{
this.private_stuff();
}
Ama bu iş olmamalı:
var r = new Restaurant();
r.private_stuff();
Nasıl ikisi de doğru tutun çok özel bir yöntem olarak private_stuff tanımlayabilirim?
Doug Crockford's writeup birkaç kez ama" yöntemleri genel yöntemler ve "ayrıcalıklı" yöntemleri dışarıdan çağrılabilir. çağrılabilir "özel benzemiyor okudum
CEVAP
11 EYLÜL 2008, PERŞEMBE
Bunu yapabilirsin, ancak olumsuz prototip bir parçası olamaz
function Restaurant()
{
var myPrivateVar;
var private_stuff = function() // Only visible inside Restaurant()
{
myPrivateVar = "I can set this here!";
}
this.use_restroom = function() // use_restroom is visible to all
{
private_stuff();
}
this.buy_food = function() // buy_food is visible to all
{
private_stuff();
}
}
Bunu Paylaş:
Nasıl "düzgün" JavaScript öz...
Nasıl birim özel yöntemler test musun?...
Kullanarak " koyuyorsun;sayfa özel...
En iyi şekilde Objective-C sınıfı için...
Neden Python'In 'gizli'...