我为这个问题道歉,我刚刚开始学习Javascript。
我有两种方法:
Manager.prototype.filters = function () {
var user = [];
...
Manager.prototype.filters_main = function () {
var user = [];
...
我需要使属性‘用户’对这两个方法(过滤器,filters_main)可用。以便他们可以使用共享变量(用户)。怎么可能写?
我在玩javascript原型。我是个新手,所以我有一个小问题。
我正在使用这个作为指南。
我已经定义了Product和Book。Book.prototype.constructor = Book();的目的是什么。我搞不懂。无论有没有它,我都能成功地调用父构造函数。
Book.prototype = new Product;
Book.prototype.constructor = Book; // What's the purpose of this
这是我的jsFiddle
我对JavaScript非常陌生,无法理解下面的代码(代码来源:)
// defining constructors
function C(){}
function D(){}
var o = new C();
// true, because: Object.getPrototypeOf(o) === C.prototype
o instanceof C;
// false, because D.prototype is nowhere in o's prototype chain
o instanceof D;
o instanceof Object; // true, b
我正在读JavaScript: The Good Parts。在书中,定义了一个beget函数。它的目的是创建并返回一个新对象,该对象使用另一个对象作为其原型。为什么beget函数要实例化一个新函数而不是一个对象?
if( typeof Object.beget !== 'function' ){
Object.beget = function(o){
var F =new Function(){}; // this line, why it cannot be var F = new Object();
F.prototype
我在JavaScript中遇到了一个简单的继承问题,其中Child类继承自Parent类。但是,在使用Object#create建立继承时,似乎必须在实例化Child类之前进行继承:
function Child() {}
function Parent() {}
Parent.prototype.sayhello = function () {
console.log("hello world");
}
// Apparently, this must precede instantiation:
// Child.prototype = Object.crea
我有以下模型:
var Soq = Backbone.model.extend({
default:{
'name': 'something'
, 'parents': [] //array will be passed by reference to attributes hash on new object instantiation
}
});
我是javascript和backbone的新手,但是查看源代码,我认为可能会发生的情况是,当这个模型的属性被设置为默认值(backbo
我有一个方法,可以在创建新对象时选择prototype对象(复制自"Javascript: Good Parts“一书):
Object.create = function(o) {
var F = function() {};
F.prototype=o;
return new F();
}
现在说,我有一个对象:
var car = {
model: "Nissan"
};
我使用" create“方法基于这个对象创建了一个新对象:
var car1 = Object.create(car);
然后,我可以向car添加一个属性,
我对javascript中的以下原型行为感到困惑。
function A(){
};
A.prototype.toString = function(){
console.log('first');
}
var a = new A(), b;
A.prototype = {
toString:function(){
console.log('second');
}
}
b = new A();
a.toString();
//outputs : first
b.t
最近我一直在玩javaScript原型对象,遇到了下面的例子。
function Foo(){
}
Foo.prototype=null;
var fooObj=new Foo();
当我从开发人员工具查看fooObj时,__proto__属性指向全局对象的原型,并且我可以访问对象的原型对象中定义的所有属性和函数。哪个应该指向Foo函数的原型对象,因为我已经将null赋值给它,我期望__proto__将指向null,指向__proto__可能更有意义,但我想了解对象创建后如何为__proto__赋值?是什么导致它指向对象的原型对象?
我看过很多关于prototype和proto的问题,
我需要一些帮助来理解原型链。我不明白/不太确定我的假设是否正确。我想了解Object.prototype的链接。一个例子
function A(){};
var newObject=new A();
我知道newObject有一个内部属性[prototype],它具有对A.prototype的引用。这个原型对象也有一个与Object.prototype相关的内部属性,对吗?但为什么会有这样的参考呢?这是因为A的原型(用作构造函数)是一个可以想象由A.prototype=new Object()创建的对象(它将在后台自动完成)。现在我可以参考对象的原型了吗?我希望我能解释清楚。请告诉我你的意见。
我刚刚看到道格拉斯·克罗克福德谈到典型的继承“也不是个好主意”。
我并不真正关心他与JavaScript一起对原型继承的看法,因为它是语言的一个重要部分,它将永远存在。
但我想知道,通过使用他在链接中显示的功能对象创建,我得到了什么好处:
// Class Free Object Oriented Programming
function constructior(init) {
var that = other_constructor(init),
member,
method = function () {
// init,
我对JavaScript的原型概念还是个新手。
考虑以下代码:
var x = function func(){
}
x.prototype.log = function() {
console.log("1");
}
var b = new x();
据我所知,b.log()应该返回1,因为x是它的原型。但是为什么属性b.prototype没有定义呢?
难道b.prototype不应该返回对x函数的引用吗?
我一直在跟踪曼努埃尔·泰希拉( Manuel )的Node.js,我偶然发现了这个奇怪的行为,当时我正在浏览事件发射器一章。
作者建议的代码由如下内容组成:
var EventEmitter = require("events").EventEmitter;
var util = require ("util");
var MyClass = function() {};
util.inherits(MyClass, EventEmitter);
var instance = new MyClass();
instance.on("custom"
给定简单的JS继承,这两个示例的基本函数有什么实际区别?换句话说,什么时候一个人应该选择在"this“上定义一个函数,而不是在原型上(或者反过来)?
对我来说,第二个例子更容易理解,但这还能有多少呢?
在此定义的函数:
//base
var _base = function () {
this.baseFunction = function () {
console.log("Hello from base function");
}
};
//inherit from base
function _ctor() {
this.p
我一直在javascript中实例化子类
object = new class ()
但我注意到有些人用
object.prototype = new class ()
问:有什么区别吗?在我看来,后者似乎更尊重继承链,因为如果class ()有一堆"this.variable = x“语句,而对象是您想要从它继承的东西,而不是类的实例,那么您将准确地将这些变量分配给对象的原型,而不是像前一种情况那样分配给对象本身。实际上是这样的?
object = new class () |vs.| subclass.prototype = new superclass ()
然而,在程序中的功能
我正在学习Javascript中的OOP,我遇到了第一个例子之一,我不清楚第三行==> this.init.apply的作用(这是参数);
var Class = function(arguments){
var klass = function(){
this.init.apply(this, arguments);
};
klass.prototype.init = function(){};
return klass;
};
有人介意解释一下整件事吗?我理解其中的大部分,但我只是想感觉我是在以正确的方式思考这件事。
我正在学习javascript,我感到很困惑。上的一个示例,其示例如下:
// define the Person Class
function Person() {}
Person.prototype.walk = function(){
alert ('I am walking!');
};
Person.prototype.sayHello = function(){
alert ('hello');
};
// define the Student class
function Student() {
// Call the parent
我刚刚得到了Douglas Crockford的Javascript: The Good Parts,我在理解他的一个关于原型的例子时遇到了一些困难。书中的代码如下:
if (typeof Object.create !== "function") {
Object.create = function(o) {
var F = function () {}
F.prototype = o;
return new F;
};
}
我假设这段代码是用来定位函数的原型的。但为什么要使用如此复杂的方法呢?为什么不直接使用v