これが何百回も尋ねられていることは知っていますが、その概念を理解できないようですprototype
ここに私のサンプルスクリプトがあります
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 の組み込みオブジェクトの 1 つです。3 つのフォーマット作成関数オブジェクトは同等です。
var function_name = new Function(arg1, arg2, ..., argN, function_body)
function function_name(arg1, arg2, ..., argN)
{
...
}
var function_name=function(arg1, arg2, ..., argN)
{
...
}
そのため、関数を作成して new キーワードで呼び出す必要があるプロトタイプ チェーンを作成します。
Function.prototype
すべての関数オブジェクトへの参照prototype
です。
乾杯