Javascript 原型如何扩展对象?
在学习Javascript时,我一直在阅读原型源代码。我一直在想,用于扩展本机对象的代码在哪里 我一直在看Javascript 原型如何扩展对象?,javascript,prototypejs,Javascript,Prototypejs,在学习Javascript时,我一直在阅读原型源代码。我一直在想,用于扩展本机对象的代码在哪里 我一直在看 Object.extend(Function.prototype, (function() { Object.extend(String.prototype, (function() { Object.extend(Number.prototype, (function() { 到处都是,我找不到.extend函数的来源 我看到了: function extend(destinati
Object.extend(Function.prototype, (function() {
Object.extend(String.prototype, (function() {
Object.extend(Number.prototype, (function() {
到处都是,我找不到.extend函数的来源
我看到了:
function extend(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
}
在第194-198行,不知道这是否是一个。如果是的话,我不知道是怎么回事
无论如何,我上面提到的问题是Prototype如何/在哪里扩展本机对象。如果您查看这里的源代码:
您将看到:
是的,这是您看到的函数,稍后在代码中您将看到它用于获取
对象。扩展
,如下所示:
extend(Object, {
extend: extend, //here's where the magic gets added
inspect: inspect,
toJSON: NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON,
toQueryString: toQueryString,
toHTML: toHTML,
keys: Object.keys || keys,
values: values,
clone: clone,
isElement: isElement,
isArray: isArray,
isHash: isHash,
isFunction: isFunction,
isString: isString,
isNumber: isNumber,
isDate: isDate,
isUndefined: isUndefined
});
因此,它调用了
extend()
,将自身作为属性添加到对象
原型中,将自身添加为对象
上的.extend
方法。。。我在哪里找到这条线?@Thorpe-我想我明白你的意思了:键:对象。键。所以Object.keys实际上是对象属性。其他的| | keys在这里做什么?@Thorpe-它的意思是,如果它已经有对象。keys
(本机浏览器版本),使用它,如果没有,那么使用该文件中定义的keys
函数:我想是这样的:)我相信你的答案最能解释问题+1.