Я знал, что это было спрошено сотни раз, однако я не могу понять концепцию prototype
Здесь мой пример script
var config = {
writable: true,
enumerable: true,
configurable: true
};
var defineProperty = function(obj, name, value) {
config.value = value;
Object.defineProperty(obj, name, config);
}
var man= Object.create(null);
defineProperty(man, 'sex', "male");
var person = Object.create(man);
person.greet = function (person) {
return this.name + ': Why, hello there, ' + person + '.'
}
var p=Object.getPrototypeOf(person);
alert(p.sex);//shows male
person.prototype.age=13;//why there is a error said the prototype is undefined? I thought it supposed be man object...
var child=function(){}
child.prototype.color="red";//why this line doesn't show error? both child and person are an object .
alert(child.prototype.color);//shows red
var ch=Object.getPrototypeOf(child);
alert(ch.color);//why it is undefined? it is supposed red.
Надеюсь, вы можете мне помочь... спасибо.
Обновлено:
Спасибо, ребята, любезную помощь. На основании ответа Elclanrs. Ниже я узнал.
Function
является одним из встроенных объектов в javascript. объект функции создания 3-го типа равен.
var function_name = new Function(arg1, arg2, ..., argN, function_body)
function function_name(arg1, arg2, ..., argN)
{
...
}
var function_name=function(arg1, arg2, ..., argN)
{
...
}
Итак, создайте цепочку прототипов, мы должны создать функцию, а затем вызвать ее с помощью нового ключевого слова.
Function.prototype
- ссылка на объект Все функции prototype
.
Приветствия