相关疑难解决方法(0)

什么时候应该在JavaScript中使用构造函数?

例如,我有这个构建Car对象的函数.

function Car() {
    var honkCount = 0;
    var honkHorn = function () {
        honkCount++;
        $results.html('HONK!<br />');
    };
    return {
        get honkCount() {
            return honkCount;
        },
        honk: honkHorn
    }
}
Run Code Online (Sandbox Code Playgroud)

两者似乎var car = new Car();var car = Car();没有太大的区别,我有点困惑自己.

javascript oop constructor function object

3
推荐指数
1
解决办法
173
查看次数

[...new set(array)] 在 JavaScript 中如何工作?

考虑:

const ages = [26, 27, 26, 26, 28, 28, 29, 29, 30]
const uniqueAges = [...new Set(ages)]

console.log(uniqueAges) // [26,27,28,29,30]
Run Code Online (Sandbox Code Playgroud)

我知道扩展语法。我搜索了set,但没有找到有关它如何工作的解释。

如何设置商品比较并找到相似商品?

如果设置,则在比较中使用循环。

javascript object javascript-objects

3
推荐指数
1
解决办法
3万
查看次数

你能创建一个 JSON 构造函数吗?

我知道 JSON 是用来交换信息的。让我感到困惑的是,如果可能的话,我希望能够使用 JSON 来存储和调用对象及其构造函数,但是由于 JSON 是文字符号,我想知道是否有办法用某种类型的填充 JSON 对象参数构造函数很像普通构造函数的工作方式。

我发现的最接近的事情是这样的:

普通构造函数:

var dude = function(name, age) {
this.name = name;
this.age = age;
}
var bro = new dude("chad", 22);
Run Code Online (Sandbox Code Playgroud)

JSON:

var bro = {
'name': "chad", 
'age': 22
};
Run Code Online (Sandbox Code Playgroud)

但是,即使考虑到您可以随时调用的构造函数var bro2 = new dude("tony", 21);,并dude在您想要的任何时候都有一个新实例,即使这些也不是完全相同的。您如何将这种类型的功能与 JSON 混合在一起?

javascript json constructor object

2
推荐指数
1
解决办法
8984
查看次数

为什么对象和数组构造函数不需要以 new 为前缀来构造对象?

考虑以下片段:-

function Custom(){}

// prints {}
console.log(Object()); 
// prints []
console.log(Array());
// prints undefined
console.log(Custom())
// prints {}
console.log(new Custom());
Run Code Online (Sandbox Code Playgroud)

我知道自定义函数构造函数需要一个new以 bind 为前缀的关键字this。为什么对ArrayandObject构造函数不是必需的?

javascript

2
推荐指数
1
解决办法
44
查看次数

JavaScript中"新"的影响

我写了一些我在视频中找到的代码,它看起来像这样:

var clientX = clientX || {} ; 
clientX.MyClass = function(initialValue){
  var var1 = initialValue;
  var publicMembers = {
    get_var1 : function(){
      return var1; 
    }
  };
  return publicMembers;
}



var result = new clientX.MyClass("val1");
alert(result.get_var1());

clientX.instance = new  clientX.MyClass("val2");
alert(clientX.instance.get_var1());


clientX.instance2= new clientX.MyClass("val3");
alert(clientX.instance2.get_var1());
Run Code Online (Sandbox Code Playgroud)

问题是,在我使用时删除"new"关键字后:var result = new clientX.MyClass("val1");没有更改,那么为什么作者选择使用它?有什么影响?

javascript new-operator

1
推荐指数
1
解决办法
66
查看次数

新功能返回新功能

我对JavaScript中的new关键字感到困惑.以下面的例子为例

function A (value) {
    this.a = value;
}

function B (value) {
    return new A (value);
}

console.log (    B (0)); // { a: 0 }
console.log (new B (0)); // { a: 0 }
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个新的"A"实例,而不必使用"new".为此,我有"B()",然而,当我调用"new B()"时,它似乎与"B()"做同样的事情,好像"new"被忽略了.在这两种情况下,instanceof等于"A".到底发生了什么?

javascript oop factory instance node.js

1
推荐指数
1
解决办法
53
查看次数

Javascript run()函数

var test = function(msg) {
  alert(msg)
};

(new test("hi")).run();
(new test("hello")).run();
Run Code Online (Sandbox Code Playgroud)

当我在javascript代码上运行时,我能够获得警报"嗨".但警告"你好"不会出现.

  1. 任何人都可以解释上面的内容,我对此完全陌生.只有我知道"测试"是一个功能
  2. 什么是run()方法呢?,因为当我在上面的代码中删除运行时,我能够看到两个警报,请帮助...

    var test = function(msg) {
      alert(msg)
    };
    
    (new test("hi"));
    (new test("hello"));
    
    Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
7364
查看次数

为什么我的JavaScript对象中的属性未定义?

我创建了一个生成并返回对象的函数:

function TickersObj(tag, array, boolLots, boolOptions, boolDisplay) {
    tag         = tag         || {};
    array       = array       || [];
    boolLots    = boolLots    || false;
    boolOptions = boolOptions || false;
    boolDisplay = boolDisplay || true;

    console.log('tag = ', tag);
    console.log('array = ', array);
    console.log('boolLots = ', boolLots);
    console.log('boolOptions = ', boolOptions);
    console.log('boolDisplay = ', boolDisplay);

    this.assoTikArray     = array;
    this.lotsOfTags       = boolLots;
    this.tagOptions       = boolOptions;
    this.tagsHoverDisplay = boolDisplay;
    return this;
}
Run Code Online (Sandbox Code Playgroud)

稍后在我的代码中我传递的值如下:

switch(type) {
    case 'tagsPanel':
        tag.tickers  = data.data.ticker_tag.tickers;
        var tickersObj = TickersObj(tag, …
Run Code Online (Sandbox Code Playgroud)

javascript object

0
推荐指数
1
解决办法
39
查看次数

如何通过backbone.js中的全局变量创建集合?

我在stackoverflow中得到了许多顾问的帮助,部分问题已经解决,但仍然存在一些问题.

我咨询了答案,我试图解决问题,因为它我理解了javascript命名空间pattren.

一种命名空间模式,可避免污染全局命名空间.
有关此命名空间模式的更多详细信息
如何在JavaScript中声明命名空间?

我遇到了成功创建全局变量的问题,但我没有处理生成的变量.

collecton.js

    var app = app || {};
(function () {
    'use strict';
    var collections = app.Collection = app.Collection || {};

    collections.VideoLists =  Backbone.Collection.extend({
        model: app.Model,
        initialize: function(){
            console.log('load Collection');
        }
    });

    app.Collection = collections.VideoLists;
})();
Run Code Online (Sandbox Code Playgroud)

model.js

var app = app || {};
(function() {
    'use strict';
    var models = app.Model = app.Model || {};

    models.Video = Backbone.Model.extend({
        initialize: function(){
            console.log('model create');
        },
        defaults:{
                 id : "1",
                 url : "/assets/videos/call/MOV01718.mp4",
                 imgSrc : "assets/img/call/1_thumbnail.png",
                 title: "call …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js

0
推荐指数
1
解决办法
470
查看次数