プロトタイプ オブジェクト オブジェクト learning_prototype

WBOY
リリース: 2016-05-16 18:50:02
オリジナル
860 人が閲覧しました

Object は Prototype によって名前空間として使用されます。つまり、名前空間アクセスを目的としたいくつかの新しいメソッドがまとめられているだけです (つまり、「Object」で始まります)。
上記の名前空間についての私の個人的な理解は同等です。 C# の静的クラス (ツール関数を提供することを意味します) は、C# の名前空間と同じ概念であってはなりません。 C# の名前空間の後には直接メソッドが続かないため、オブジェクトにしてからメソッドを呼び出す必要がありますが、これは C の名前空間に似ています
clone
extend
inspect
isArray
isElement
isFunction
isHash
isNumber
isString
isUn​​known
keys
toHTML
toJSON
toQueryString
values

コードをコピー コードは次のとおりです:

//匿名関数呼び出しにより Object オブジェクトを作成します
( function() {

//型の文字列式を取得します (プロトタイプ学習 - ツール関数学習 ($ メソッド)) このログに詳細な手順があります
function getClass(object) {
return Object.prototype.toString.call(object)
.match(/^[objects(.*)]$/)[1]
}

//継承されたメソッド、非常にsimple クラスのコピー メカニズムは、ソース内のすべてのプロパティとメソッドをコピー先にコピーします。参照型の場合、ソースとコピー先は同じアドレスを指します。
function extend(destination, source) {
for ( var property in source)
destination[property] = source[property];
return destination;
}

// オブジェクトの文字列式を返します
関数(object ) {
try {
if (isUnknown(object)) return 'unknown';
if (object === null) return 'null';
return object.inspect ? Inspection( ) : String(object);
} catch (e) {
if (e instanceof RangeError) return '...';
throw e; >
//オブジェクトの JSON を返します (JavaScript オブジェクト記法)
function toJSON(object) {
var type = typeof object;
switch (type) {
case 'unknown':
case 'function':
case 'unknown': return;
case 'boolean': return object.toString();
}

if (object === null ) return ' null';
if (object.toJSON) return object.toJSON();

var results = []; (オブジェクト内の var プロパティ) {
var value = toJSON(object[property]);
if (!isUnknown(value))
results.push(property.toJSON() ': ' value);
}

return '{' results.join(', ') '}';
}

//クエリ文字列を返します。例: param1=value1¶m2 =value2
function toQueryString(object) {
return $H(object).toQueryString();
}

//HTML 文字列を返す
function toHTML(object) {
return object && object.toHTML ? object.toHTML() : String.interpret(object);

// オブジェクトのすべてのキーを取得
function key(object) {
var results = [];
for (オブジェクト内の var プロパティ)
results.push(property);
}

//すべての値を取得しますオブジェクトの
関数の値(オブジェクト) {
var results = [];
for (オブジェクトの var プロパティ)
results.push(object[property]); 🎜>}

//オブジェクト内のすべてのプロパティとメソッドを空のオブジェクトにコピーし、return
function clone(object) {
return extend({ }, object);

//オブジェクトが基本的な DOM 要素であるかどうかを判断します
function isElement(object) {
return !!(object && object.nodeType == 1);

//オブジェクトが配列かどうかを判定
function isArray(object) {
return getClass(object) === "Array";
}

//オブジェクトかどうかを判定is プロトタイプ ハッシュ オブジェクト
function isHash(object) {
return objectinstanceof Hash;

//オブジェクトが関数であるかどうかを判断します
function isFunction(object) {
return typeof object === "function";
}

//オブジェクトが文字列であるかどうかを判断します
function isString(object) {
return getClass(object) === " String";
}

//オブジェクトが数値かどうかを判断します
function isNumber(object) {
return getClass(object) === "Number";
}

//オブジェクトが定義されているかどうかを判断します
function isUnknown(object) {
return typeof object === "未定義";
}

//Return Object オブジェクト
extend( Object, {
extend: extend,
inspect: Inspection,
toJSON: toJSON,
toQueryString: toQueryString,
toHTML: toHTML,
keys: キー,
values: 値、
clone: クローン、
isElement: isElement、
isArray: isArray、
isHash: isHash、
isFunction: isFunction、
isString: isString 、
isNumber: isNumber 、
isUn​​known: isUnknown
})
})();



検査メソッド:





コードをコピー


コードは次のとおりです:

Object.inspect() // -> '未定義'
Object.inspect(null) // -> 'null'
Object.inspect(false) // -> 'false'
Object.inspect([1, 2, 3]) // -> '[1, 2, 3]'
Object.inspect('hello') // -> hello'"

toJSON メソッド:
再帰呼び出しプロセスがあることに注意してください var value = toJSON(object[property]); 最後に JSON 形式の文字列を返します
コードをコピー コードは次のとおりです:

var data = {名前: 'バイオレット'、職業: 'キャラクター'、年齢: 25、ペット: ['カエル', 'ウサギ']};
/* '{"名前": "バイオレット", "職業": " キャラクター"、"年齢": 25、"ペット": ["カエル","ウサギ"]}' */
//eval が JSON 文字列を返すときにかっこを追加することを忘れないでください。そうしないとエラーが発生します。ここで括弧は評価を強制する役割を果たします。
//それ以外の場合、JSON 文字列は複合文とみなされ、その中の ("name":) はラベルとみなされ、次の内容を解析するときにエラーが発生します
var obj =eval('(' Object.toJSON (データ) ')');
alert(obj.name)

toQueryString メソッド:
オブジェクトをオブジェクトでハッシュし、Hash オブジェクトの toQueryString メソッドを呼び出し、呼び出し結果を返します。Hash オブジェクトについて説明する場合は、toQueryString メソッドについて詳しく説明します。
一般に、このメソッドは Ajax.Request を呼び出すときによく使用されます。例を見てみましょう:
コード コードは次のとおりです:

Object.toQueryString({ action: 'ship', order_id: 123, 料金: ['f1', 'f2'], 'label': 'a Demon' } )
// -> 'action=ship&order_id=123&fees=f1&fees=f2&label=a デモ'

toHTML メソッド:
オブジェクト パラメーターが渡された場合未定義または null は空の文字列を返します。
alert(Object.toHTML())
alert(Object.toHTML(null))
オブジェクトが toHTML メソッドを定義している場合は、オブジェクトの toHTML メソッドを呼び出します。それ以外の場合は、オブジェクトの toHTML メソッドを呼び出します。 call String の static メソッドは、実際にオブジェクトが null かどうかを判断し、null の場合は '' を返します。それ以外の場合は、オブジェクトの toString メソッドを呼び出し、呼び出し結果を返します
コードをコピーします コードは次のとおりです:

Object.extend(String, {
interpret: function(value) {
戻り値 == null ? '' : String( value);
},
specialChar: {
'b': '\b',
't': '\t',
'n': '\n'、
'f': '\f'、
'r': '\r'、
'\': '\\'
}
});

以下の例を見てください:
コードをコピーします コードは次のとおりです:

var Bookmark = Class.create({
initialize: function(name, url) {
this.name = name;
this.url = url;
},
toHTML : function() {
return '#{name }'.interpolate(this);
}
}); var api = new Bookmark('プロトタイプ API', 'http://prototypejs.org/api');
Object.toHTML(api);
//- > 'プロトタイプ API'


キーと値のメソッド: サンプルを見れば理解できるので、詳細は説明しません:

コードをコピー コードは次のとおりです:
Object.keys()
// -> []
Object.keys({ 名前: 'プロトタイプ', バージョン: 1.5 }).sort()
// ['名前', 'バージョン']
Object.values()
// -> []
Object.values({ 名前: 'プロトタイプ ', バージョン: 1.5 }).sort()
// -> [1.5, 'プロトタイプ']


clone メソッド: '{} ' は空のオブジェクトの直接量であり、 new Object()

コードをコピーします コードは次のとおりです:
var o = { name: 'Prototype'、バージョン: 1.5、作成者: ['sam', 'contributors'] };
var o2 = Object.clone(o);
o2.authors.pop(); o.version // -> 1.5
o2.version // -> '1.5 奇妙'
o.authors // -> ['sam']
// うわー! 、ここに注目してください!


isXXX メソッドについては説明しません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!