Javascript 对象是如何获得Function.prototype方法的?
我试图弄清楚对象构造函数如何拥有像Javascript 对象是如何获得Function.prototype方法的?,javascript,Javascript,我试图弄清楚对象构造函数如何拥有像call和apply这样的方法,因为它的原型没有将它们作为属性,而Object.hasOwnProperty('call')在我当前的浏览器(Chrome)中返回false 请告诉我这个魔法是从哪里来的 我编辑了我的问题,因为有些人似乎不明白我的意思: 函数从其原型继承调用 var a = function(){} a.hasOwnProperty('call') // false a.prototype.hasOwnProperty('call') // tr
call
和apply
这样的方法,因为它的原型没有将它们作为属性,而Object.hasOwnProperty('call')
在我当前的浏览器(Chrome)中返回false
请告诉我这个魔法是从哪里来的
我编辑了我的问题,因为有些人似乎不明白我的意思:
函数从其原型继承调用
var a = function(){}
a.hasOwnProperty('call') // false
a.prototype.hasOwnProperty('call') // true
对象
具有调用
方法。但是,Object.prototype
没有call
方法:
Object.hasOwnProperty('call') // false
Object.prototype.hasOwnProperty('call') // false
但是对象中的调用是一个函数,它是一个可以用来创建对象的构造函数:
var foo = new Object();
当然,通常只使用对象文字:
var foo = {};
请注意:
Object.getPrototypeOf(Object) === Function.prototype // true
但是:
它不是两个原型-
Object
是一个函数,它创建的对象具有原型Object.prototype
<代码>对象本身具有prototype函数。prototype对象是一个函数-它是一个可用于创建对象的构造函数:
var foo = new Object();
当然,通常只使用对象文字:
var foo = {};
请注意:
Object.getPrototypeOf(Object) === Function.prototype // true
但是:
它不是两个原型-Object
是一个函数,它创建的对象具有原型Object.prototype
<代码>对象本身具有prototype函数。prototype对象是一个函数-它是一个可用于创建对象的构造函数:
var foo = new Object();
当然,通常只使用对象文字:
var foo = {};
请注意:
Object.getPrototypeOf(Object) === Function.prototype // true
但是:
它不是两个原型-Object
是一个函数,它创建的对象具有原型Object.prototype
<代码>对象本身具有prototype函数。prototype对象是一个函数-它是一个可用于创建对象的构造函数:
var foo = new Object();
当然,通常只使用对象文字:
var foo = {};
请注意:
Object.getPrototypeOf(Object) === Function.prototype // true
但是:
它不是两个原型-Object
是一个函数,它创建的对象具有原型Object.prototype
<代码>对象本身具有prototype功能。prototype
尝试以下操作:
function Fn() {};
Fn.prototype.pro = "this_pro";
var object = new Fn();
object.prototype = {};
object.hasOwnProperty("pro"); # false
object.prototype.hasOwnProperty("pro"); # false
"pro" in object; # true
这是:
object.__proto__.hasOwnProperty("pro") #true
通常,一个对象不应该具有其原型的属性,而应该具有其自身的属性。这些属性用于作为其实例的对象(作为函数)。更清楚的是:
object.__proto__ === Fn.prototype; # true
试试这个:
function Fn() {};
Fn.prototype.pro = "this_pro";
var object = new Fn();
object.prototype = {};
object.hasOwnProperty("pro"); # false
object.prototype.hasOwnProperty("pro"); # false
"pro" in object; # true
这是:
object.__proto__.hasOwnProperty("pro") #true
通常,一个对象不应该具有其原型的属性,而应该具有其自身的属性。这些属性用于作为其实例的对象(作为函数)。更清楚的是:
object.__proto__ === Fn.prototype; # true
试试这个:
function Fn() {};
Fn.prototype.pro = "this_pro";
var object = new Fn();
object.prototype = {};
object.hasOwnProperty("pro"); # false
object.prototype.hasOwnProperty("pro"); # false
"pro" in object; # true
这是:
object.__proto__.hasOwnProperty("pro") #true
通常,一个对象不应该具有其原型的属性,而应该具有其自身的属性。这些属性用于作为其实例的对象(作为函数)。更清楚的是:
object.__proto__ === Fn.prototype; # true
试试这个:
function Fn() {};
Fn.prototype.pro = "this_pro";
var object = new Fn();
object.prototype = {};
object.hasOwnProperty("pro"); # false
object.prototype.hasOwnProperty("pro"); # false
"pro" in object; # true
这是:
object.__proto__.hasOwnProperty("pro") #true
通常,一个对象不应该具有其原型的属性,而应该具有其自身的属性。这些属性用于作为其实例的对象(作为函数)。更清楚的是:
object.__proto__ === Fn.prototype; # true
谢谢我又忘了Object.getPrototypeOf是要使用的对象谢谢!我又忘了Object.getPrototypeOf是要使用的对象谢谢!我又忘了Object.getPrototypeOf是要使用的对象谢谢!我又忘了Object.getPrototypeOf是要使用的对象