Значение вызывающего по умолчанию для метода AS3 - PullRequest
0 голосов
/ 07 апреля 2011

Есть ли способ установить значение по умолчанию параметра области метода для вызывающего абонента?

В AS3 вы можете установить значения по умолчанию для параметров метода следующим образом:

function myFuntion(param1:String="hello",param2:int=3) {

И вы можете передать ссылку на объект, сказав:

//method of Class1
function myFuntion(obj:Object) { } //do something with obj

//in Class2
var class1:Class1 = new Class1();
class1.myFunction(this);

Итак, вопрос, есть ли ключевое слово, которое можно использовать как:

//method of Class1
function myFuntion(obj:Object = CALLER) { } //do something with obj

//in Class2
var class1:Class1 = new Class1();
class1.myFunction();

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Единственное значение параметра функции по умолчанию, которое принимается для типа Object, это 'null'.

function myFunction(obj:Object = null):void {};

var class1:Class1 = new Class1();
class1.myFunction();
1 голос
/ 07 апреля 2011

Нет, нет пути к тому, что вы просите, и это хорошо для инкапсуляции и читабельности кода. Вы должны быть вынуждены сознательно передать this , чтобы всем, читающим Class2.as, было понятно, на что ссылается ваша функция.

В общем, вы должны спросить себя "почему?" в любое время у вас есть параметр функции типа Object (это довольно общее!). Я не говорю, что для этого никогда нет веских причин - например, в целях сообщения об ошибках - но слишком часто это признак плохого дизайна ООП (например, использование объекта, потому что вы слишком ленивы, чтобы сделать правильный класс структуры данных для передачи или обхода проверки типов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...