我正在查看下面代码的层次结构(原型链),我不知道第二个(较低的对象)来自何处。我知道"t“变量是对象对象的实例,但是为什么第一个对象下面有另一个对象呢?我以为那个物体是链条上的最后一个环节。所以,我很困惑,因为这会打印测试=>对象=>对象
function test (){ }
var t = new test()
console.log(t)
澄清:使用Chrome浏览器
在inherits方法下的backbone.js中,作者这样做:
var ctor = function() {};
// some other code ...
var child;
// some other code ...
ctor.prototype = parent.prototype;
child.prototype = new ctor();
据我所知,上面所说的是允许新对象继承父对象的原型链。我试图理解这一点,但是在实践中,上面的方法和直接分配原型之间有区别吗?
child.prototype = parent.prototype
我知道存在这个[prototype]对象,
我正在读Crockford的"Javascript: The Good Parts“。在早期,他引入了Object.create()函数,但它似乎是多余的。为什么Object.create()倾向于将一个对象赋给一个新对象的原型,这是一种传统的方式?这两个陈述之间的区别是什么?我当然更喜欢Object.create()语法,但我想在这里了解基本原理:
var bar = Object.create(foo);
和
var bar = {};
bar.prototype = foo;
我想分析这段代码,但我遇到了一些麻烦。我的麻烦从这条线开始。Customer.prototype = new Person();。据我所知。我们可以向我们的变量添加一些方法,就像我们使用Person.prototype.getName时那样。很好,现在Person有一个指向返回名称的函数的proto。那么,当我们做Customer.prototype = new Person();时,这意味着什么呢?这是否意味着将Person中的所有方法和语句放入变量Customer中
var Person = function(name) {
this.name = name;
};
Person.p
我创建函数并在其原型中添加属性,如下所示
let F = function(){}
F.prototype.foo = 'abc'
我的问题是,当使用F.foo时,它为什么会返回undefined?但是在使用了这个之后
let F = function() {}
F.prototype.foo = 'abc'
let fn = new F()
console.log(fn.foo) // return 'abc'
我有这样的代码:
function Foo () { }
function Bar() { }
Bar.prototype = new Foo();
var foo = new Foo();
var bar = new Bar();
bar instanceof Bar; // true
bar instanceof Foo; // true
为什么'instanceof‘运算符对Bar返回true?我将Bar的'.prototype‘属性替换为Foo创建的新的空对象,那么'instanceof’操作符是如何知道我调用Bar来实例化对象的?到目前为止,我对
假设我创建了一个名为Person的类。
var Person = function(fname){this.fname = fname;};
pObj是我从这个类中创建的对象。
var pObj = new Person('top');
现在,我向Person类添加了一个属性,比如lname。
Person.prototype.lname = "Thomsom";
现在pObj.lname给我找了个“汤姆森”
我的问题是,当pObj没有在其中找到属性lname时,它如何知道要在哪里查找。
JavaScript古鲁,下面是你的一个难题:
function aFunc(){}
function bFunc() {}
aFunc.prototype = bFunc.prototype;
a = new aFunc();
console.log(a instanceof bFunc); //true!
为什么a实例是bFunc
如果是这样的话,我可以理解:
function aNext(){}
function bNext(){}
aNext.prototype = new bNext();
a = new aNext();
console.log(a instanceof bNext
下面是代码片段,谁能解释一下为什么a.hasOwnProperty("prototype")是真的,其他的是假的?这是否意味着函数有自己的原型,其他的都是从Object继承的?如果是这样,为什么c.hasOwnProperty("prototype")是false?此外,他们的constructor属性的属性从何而来?谢谢
var a = function () {
};
var b = new String("test");
var c = {};
console.log(a.hasOwnPropert
为什么这不起作用?
// this one works as I expected, when objSayHello()
Object.prototype.objSayHello = function(){alert('Hello,from OBJECT prototype')};
// NOT working !
Object.prototype ={objSayHello: function(){alert('Hello,from OBJECT prototype')}};
objSayHello();